gpt4 book ai didi

c# - Html 敏捷包 Xpath

转载 作者:行者123 更新时间:2023-11-30 20:38:01 25 4
gpt4 key购买 nike

如何将此 xPath 与 Html Agility Pack 一起使用?

路径:

//div[@class='test']/(text())[last()]

我试过这段代码:

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='test']/(text())[last()]"))
{
test = node.InnerText();
}

HTML:

<div class="test">
<ul>
<li><b>Test1</b>Test1 Text</li>
<li><b>Test2</b>Test2 Text</li>
</ul>
</div>

我需要在 xPath 中不指定 ul 标签的情况下提取“Test2 文本”。

最佳答案

您可以尝试使用这个 XPath :

(//div[@class='test']//text()[normalize-space()])[last()]

//div[@class='test']//text()[normalize-space()] 找到 非空文本节点 分区。然后,[last()] 仅返回所有找到的文本节点中的最后一个节点。

工作演示示例(在线查看 here):

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

关于c# - Html 敏捷包 Xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35506865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com