为什么当我添加 /text() 时,我的 XPath 会卡在第一个结果上
本文关键字:XPath 我的 结果 第一个 添加 text 为什么 | 更新日期: 2023-09-27 18:33:40
这是我尝试使用XPath的HTML的模拟:
<div class="stream-links">
<div>
<a href="link">value I need</a>
</div>
<div>
<a href="link">value I need</a>
</div>
<div>
<a href="link">value I need</a>
</div>
</div>
现在,当我在浏览器中使用 XPath 模式//div[@class='stream-links']/div/a
时,它会选择<a ...>
节点。每次我按回车键时,它都会选择下一个,但是当我使用模式//div[@class='stream-links']/div/a/text()
它卡在第一个<a ...>
节点的文本上,所以当我按回车键时,它不会移动到下一个节点。(顺便说一句,使用FireFox上的Firebug插件来检查元素(
我正在用 C# 编写一个程序,父div 下的div 数量是一个变量,所以我不能在这里使用//div[@class='stream-links']/div[
数字]/a/text()
因为我需要获取所有这些数字。
我使用 Xpath 的代码是HtmlNodeCollection NODECOL1 = MEDOC.DocumentNode.SelectNodes("//div[@class='stream-links']/div/a[1]");
所以我的问题是:
1(Firebug没有跳到下一个<a...>
是否有特殊原因,或者它是插件方面的"错误"?
2(我的代码仍然可以工作还是我需要以其他方式处理它?
其余代码有一些不对劲的地方,所以我看不到我的那部分代码是否真的有效,如果我现在可以自己测试它,就不会问问题 2。
对于您的 HTML,此 XPath 选择三个a
元素:
//div[@class='stream-links']/div/a
此 XPath 选择三个文本节点:
//div[@class='stream-links']/div/a/text()
此 XPath 选择一个a
元素:
//div[@class='stream-links']/div/a[1]
我使用 Xpath 的代码是 HtmlNodeCollection NODECOL1 = 梅多克。DocumentNode.SelectNodes("//div[@class='stream-links']/div/a[1]"(;
1(Firebug没有跳到下一个有什么特殊的原因吗? 还是插件方面的"错误"?
//div[@class='stream-links']/div/a[1]
只选择一个a
元素。
2(我的代码仍然可以工作,还是我需要在 另一种方式?
我的其余代码有一些不对劲的地方,所以我看不到 如果我的代码的那部分真的有效与否,不会问问题 2 如果我现在能自己测试一下。
鉴于您向我们展示的内容,这不是一个合理的问题。 也许知道上述XPaths返回的内容将帮助您自己回答。