这里是我试图使用我的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 ...>
节点。每次按Enter键都会选择下一个,但是当我使用模式//div[@class='stream-links']/div/a/text()
时,它会卡在第一个<a ...>
节点的文本上,所以当我按下回车键时它不会移动到下一个节点。 (在FireFox btw上使用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)我的代码是否仍然有用,或者我是否需要以另一种方式处理它?</ p>
我的代码中有其他一些不正确的事情,所以我无法看到我的代码中的那部分是否真的有效,如果我可以测试,就不会问问题2我自己现在。
答案 0 :(得分: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 = MEDOC.DocumentNode.SelectNodes(&#34; // DIV [@class =&#39;数据流的链接&#39;] / DIV / A [1]&#34);
1)有没有特别的原因Firebug没有跳到下一个 或者它是一个&#39; bug&#39;在插件方面?
//div[@class='stream-links']/div/a[1]
仅选择一个a
元素。
2)我的代码是否仍然有效,或者我是否需要接近它 另一种方式?
我的代码中有一些不正确的东西,所以我无法看到 如果我的代码的那部分实际上有效,那么就不会问问题2 如果我现在可以自己测试一下。
鉴于你向我们展示的内容,这不是一个合理的问题。也许知道上面的XPath返回将帮助你自己回答它。