2011-12-05 18 views
0

私はhtmldocumentからクエリ文字列値を抽出しようとしています。これは、idと呼ばれるクエリー・ストリング・パラメーターを持つ多数のアンカー・リンクを含んでいます。私はcommaseperated文字列ですべてのIDを取得したいと思います。これをどうすれば解決できますか?だから私は取得したいと思います:結果は、= {1,2,3,4,5}htmldocでクエリ文字列の値を見つける方法は?

vb.netコード:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     Dim str As String() = GetParagraphs(System.IO.File.ReadAllText(Server.MapPath("TextFile1.html"))) 

     Response.Write(str) 

    End Sub 

    Private Shared Function GetParagraphs(ByVal data As String) As String() 

     Dim result As New List(Of String) 
     Dim m As Match = Regex.Match(data, "http://mywebsite.com/mydetails.aspx?id") 
     While (m.Success) 
      result.Add(m.Value) 
      m = m.NextMatch() 
     End While 
     Return result.ToArray() 
    End Function 

TextFile.html

<a href="http://mywebsite.com/mydetails.aspx?id=1" 
      target="_blank"></a> 

      <a href="http://mywebsite.com/mydetails.aspx?id=2" 
       target="_blank"></a> 


       <a href="http://mywebsite.com/mydetails.aspx?id=3" 
        target="_blank"></a> 


        <a href="http://mywebsite.com/mydetails.aspx?id=4" 
         target="_blank"></a> 


         <a href="http://mywebsite.com/mydetails.aspx?id=5" 
          target="_blank"></a> 

答えて

0

あなたはこれを使用することができますGetParagraphsメソッドの変更:

Private Shared Function GetParagraphs(ByVal data As String) As String() 

    Dim result As New List(Of String) 
    ' Define what we are looking for 
    Const MY_MATCH As String = "http://mywebsite.com/mydetails.aspx?id=" 
    ' Replace the ? with \? so that regex finds the correct string 
    Dim m As Match = Regex.Match(data, MY_MATCH.Replace("?", "\?")) 
    While (m.Success) 
     Dim wStartIndex As Integer 
     Dim wEndIndex As Integer 

     ' Jump to the end of the found string 
     wStartIndex = m.Index + MY_MATCH.Length 
     ' Now find the end of the href string 
     wEndIndex = data.IndexOf("""", wStartIndex) 
     ' If we found something 
     If wEndIndex <> -1 Then 
      ' Extract the value from the string 
      result.Add(data.Substring(wStartIndex, wEndIndex - wStartIndex)) 
     End If 
     m = m.NextMatch() 
    End While 
    Return result.ToArray() 
End Function 
関連する問題