我正在使用HTML Agility Pack。我有一个HTMLNode,其中包含以下InnerHtml:
"Item: <b><a href="item.htm">Link Text</a></b>"
从这个节点,我想选择&#34; Link Text&#34;来自&#34; a&#34;标签。我无法做到这一点。我试过这个:
System.Diagnostics.Debug.WriteLine(node.InnerHtml);
//The above line prints "Item: <b><a href="item.htm">Link Text</a></b>"
HtmlNode boldTag = node.SelectSingleNode("b");
if (boldTags != null)
{
HtmlNode linkTag = boldTag.SelectSingleNode("a");
//This is always null!
if (linkTag != null)
{
return linkTag.InnerHtml;
}
}
任何有助于选择正确的帮助都将不胜感激。
答案 0 :(得分:1)
SelectSingleNode需要XPath
所以你需要
var b = htmlDoc.DocumentNode.SelectSingleNode("//b");
var a = b.SelectSingleNode("./a");
var text = a.InnerText;
在一行
var text = htmlDoc.DocumentNode.SelectSingleNode("//b/a").InnerText;
请注意,在xpath的开头