使用htmlagilitypack遍历html元素不起作用



我需要一些帮助,因为我无法使用htmlagilitypack开发解析器。

我有一个div和一些子div,每个子div都包含一个到边的链接。例如

<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="test">
<div>some content</div>
<div class="project-categories" itemprop="occupationalCategory">
<div class="cat_object"><a class="cat_child" target="_self" href="1.htm">1</a></div>
<div class="cat_object"><a class="cat_child" target="_self" href="2.htm7">2</a></div>
<div class="cat_object"><a class="cat_child" target="_self" href="3.htm">3</a></div>          
</div>
</div>
</body>

现在,我将XPath设置为"我喜欢遍历:">

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//*[@id="test"]/div[2]"))
{
System.Diagnostics.Debug.WriteLine(node.InnerText);
}

结果总是一样的——我只得到一个包含XPath的整个innerHtml的节点。

<div class="cat_object"><a class="cat_child" target="_self" href="1.htm">1</a></div>
<div class="cat_object"><a class="cat_child" target="_self" href="2.htm7">2</a></div>
<div class="cat_object"><a class="cat_child" target="_self" href="3.htm">3</a></div> 

我做了一些搜索,找到了几个有用的例子。使用HtmlAgilityPack 无法选择节点

但无论我尝试什么,问题仍然存在。

你能帮我访问这些项目以在单个节点中获得每个项目吗?

谢谢!Andre

我想我明白了。缺少额外的/div,因此

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//*[@id="test"]/div[2]/div"))

工作良好。

最新更新