我一直试图获得以下使用HtmlAgilityPack的价值,但没有成功。我在用SelectSingleNode。
这是我的html。
<html>
<body>
<table>
<tr><td>One</td></tr>
</table>
</body>
</html>下面是密码。
HtmlDocument doc = new HtmlDocument();
doc.Load("C:\\test.html");
HtmlNode test = doc.DocumentNode.SelectSingleNode("/html/body/table/tbody/tr/td");
Console.WriteLine(test.InnerHtml);test (HtmlNode)变量为null。
我将如何获得其中的值,即One。
发布于 2014-11-05 17:14:13
如图所示,您的示例没有tbody节点,因此您的XPath将不返回节点(null表示SelectSingleNode)。
修正:
HtmlNode test = doc.DocumentNode.SelectSingleNode("/html/body/table/tr/td");调试技巧:缓慢构建XPath并检查每个结果/子节点:
"/html/body/table/" - some children
"/html/body/table/tbody/" - null
"/html/body/table/tr/" - some children
"/html/body/table/tr/td" - score发布于 2014-11-05 17:07:55
在Using XPath in SelectSingleNode: Retrieving individual element from XML if it's present中,您需要使用text()
var test = doc.DocumentNode.SelectSingleNode("/html/body/table/tr/td/text()");另外,您还需要删除tbody。您的html中没有tbody。
https://stackoverflow.com/questions/26762539
复制相似问题