select 使用 Agility Pack 的多元素

select multi element using 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

您只需要一个不同的 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