C# Html敏捷包Xpath
如何将此xPath与Html Agility Pack结合使用 xPath:C# Html敏捷包Xpath,c#,xpath,html-agility-pack,C#,Xpath,Html Agility Pack,如何将此xPath与Html Agility Pack结合使用 xPath: //div[@class='test']/(text())[last()] 我尝试过以下代码: foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='test']/(text())[last()]")) { test = node.InnerText();
//div[@class='test']/(text())[last()]
我尝试过以下代码:
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='test']/(text())[last()]"))
{
test = node.InnerText();
}
Html:
- 测试1测试1文本
- Test2Test2文本
我需要在xPath中提取“Test2文本”,而不使用特定的ul标记。您可以尝试使用此xPath:
(//div[@class='test']//text()[normalize-space()])[last()]
//div[@class='test']//text()[normalize-space()]
查找div
中的所有非空文本节点。然后,[last()]
只返回所有找到的文本节点中的最后一个节点
工作演示示例(在线查看):
var html = @"<div class='test'>
<ul>
<li><b>Test1</b>Test1 Text</li>
<li><b>Test2</b>Test2 Text</li>
</ul>
";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
HtmlNode node = doc.DocumentNode.SelectSingleNode("(//div[@class='test']//text()[normalize-space()])[last()]");
Console.WriteLine(node.InnerText);
Test2 Text
显示一些源html以及描述您想要的结果将很有帮助。
Test2 Text