برای این کار حداقل 2 تا هست. یکی استفاده از Regular Expressions و یکی هم استفاده از شی HtmlFile.
البته فکر کنم خود .Net هم کلاس هایی واسه این کار داشته باشه اما من باش کار نکردم.
راه RegExp احتمال خطاش هست(اما خیلی کم) ولی سریع تر از HtmlFile هست.
با HtmlFile شما کل صفحه رو توی یک Object از نوع Html Document داری و میتونی با استفاده از اندیس آرایه به همه ی Tag هاش و محتویات اون ها دسترسی پیدا کنی, مثل وقتی که داری جاوااسکریپت مینویسی :
کد:
<%@Page Language="VB" aspcompat=true %>
<script language="VB" runat="Server">
Dim Doc As Object, MDoc As Object
Private Sub Page_Load(Sender As Object, E as EventArgs)
Dim strHtml As String = "<html><body>hello<h1 att1=val1></h1><h2 attr2=val2>This <b>Is</b> H2</h2>bye</body></html>"
If ( InitialiseDocs(strHtml) ) Then
Response.Write(GetTagContents("H2"))
Else
Response.Write("Unable To Initalise!")
End If
Call UninitialiseDocs()
End Sub
Private Function InitialiseDocs(Byref HtmlCode As String) As Boolean
If (HtmlCode.Length = 0) Then Return False
Call UninitialiseDocs()
Try
Doc = Server.CreateObject("HtmlFile")
Doc.Write(HtmlCode)
MDoc = Doc.documentElement
Catch
Call UninitialiseDocs()
Return False
End Try
Return True
End Function
Private Sub UninitialiseDocs()
MDoc = Nothing
Doc = Nothing
End Sub
' Utility Functions...
Private Function GetTagContents(TagName As String) As String
Dim i As Integer
Try
For i = 0 to Mdoc.all.length Step 1
If (Mdoc.all(i).tagName = TagName) Then Return Mdoc.all(i).innerHtml
Next
Catch
End Try
Return ""
End Function
</script>
<form runat="Server">
</form>
اینجا تابع GetTagContents محتویات (InnerHtml) اولین تگی رو که اسمش TagName باشه رو پیدا میکنه...خودت با استفاده از این الگو میتونی شرایط رو عوض کنی.
برای استفاده از Regular Expressions هم باید بگی دقیقا چی میخوای(اولین تگ؟ همه؟...) تا بنویسم برات.