使用Agility Pack选择多元素

时间:2017-12-28 22:58:52

标签: vb.net html-agility-pack

我是html敏捷包的新手
这是html来源

<div>
  <h1>h1 content</h1>
  <h2>h2 content</h2>
  <p>p content</p>
</div>

<div>
  <h1>h1 content</h1>
  <h2>h2 content</h2>
  <p>p content</p>
</div>

我使用此代码

Dim Web As HtmlWeb = New HtmlWeb()
Dim document As HtmlDocument = Web.Load("C:\temp\test.htm")
 For Each nod As HtmlNode In document.DocumentNode.SelectNodes("//div/h1")
    Response.Write(nod.InnerHtml & "<br>")
Next

获得这些输出。

h1 content
h1 content

如何更改代码以获得此类输出?

h1 content
p content

h1 content
p content

1 个答案:

答案 0 :(得分:0)

您只需要一个不同的XPath表达式。

Dim htmlSnippet = "
<div>
<h1>h1 content</h1>
<h2>h2 content</h2>
<p>p content</p>
</div>

<div>
<h1>h1 content</h1>
<h2>h2 content</h2>
<p>p content</p>
</div>"

Dim parser = New HtmlDocument
parser.LoadHtml(htmlSnippet)
For Each node In parser.DocumentNode.SelectNodes(
        "//div/*[self::h1 or self::p]"
        )
    Console.WriteLine(node.InnerHtml)
Next

有关更多示例,请参阅this documentation