2012-04-30 9 views
0

私は問題があります。例えば、「スタイル」に含まれるイメージのアドレスを取得したい場合など、HTTP Agilityパッケージを正しく使用できません。誰かが私に示唆しているかどうかを知りたいxpathを使用する。Http agility pack xpath

CODEのHTML

<TABLE id=uezszu_24 class="uiGrid fbPhotosGrid" cellSpacing=0 cellPadding=0> 
<TBODY> 
    <TR> 
    <TD class="vTop"> 
     <DIV class=Wrapper> 
     <A class="uiMediaThumb uiScrollableThumb uiMediaThumbHuge" href="www.cccc.com/index.php" 
     name=43563463 rel=theater aria-label="photo" ajaxify="dsgdgbdfgr45y6ghd"> 
     <I style="BACKGROUND-IMAGE: url(http://www.fressdgf.com/image.jpg)"></I> 
     </A> 
     </DIV> 
    </TD> 
    </TR> 
</TBODY> 
</TABLE> 

CODE VB編集

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 

    Dim site As HtmlAgilityPack.HtmlWeb = New HtmlWeb() 
    Dim document As HtmlAgilityPack.HtmlDocument = site.Load("https://www.site.com") 
    For Each table As HtmlNode In document.DocumentNode.SelectNodes("//tr") 

     ListBox1.Items.Add(table.InnerText) 

    Next 
End Sub 

:コードインデントは、私はあなたの代わりにXPathをLINQのを使用することをお勧め

+0

に役立ちます願っていますか?またはスタイル属性の実際のURI?後者の場合は、最初にノードから属性を取得する必要があります。次に、スタイルブロックをパースします。 HTMLアジリティパックはあなたのためにそれを解析せず、ただテストを見ます。正規表現はここで動作するかもしれません。 '背景画像\ s *:\ s * url \ s * \(\ s *(? [^)] +))'はおそらくトリックを行います。 – jessehouwing

答えて

0

を改善しました。あなたは内部のノードの背景画像を取得したい場合は、この操作を行うことができます。

For Each tableRow As HtmlNode In document.DocumentNode.SelectNodes("//tr") 
    Dim italicNode As HtmlNode = tableRow.DescendantNodes().Where(Function(n) n.Name = "i") 
    Dim styleValue As String = italicNode.GetAttributeValue("style",String.Empty) 
    ListBox1.Items.Add(styleValue) 
Next 

を、私はそれはあなたあなたがスタイルの属性の内容をしたいですか

+0

子孫( "i")は.Where(Function(n)n.Name = "i")よりも優れています。 – jessehouwing

関連する問題