问个关于 xpath 的问题

2015-01-15 15:03:27 +08:00
 stupidcat

现有一段xml:

<span>
<a class="copy">复制</a>
<a class="download 100" href="www.xxxxx.com/xxxxx">下载</a>
<a ....>XXX</a>
<a ....>YYY</a>
</span>

我想从中取出“下载”的那个<a>元素。

通过使用contains函数,下面的这个xpath是奏效的:
//span/a[contains(@class, "dowload")]

但是我现在想通过匹配那两个汉字“下载”来取出那个<a>,应该怎么写xpath?
下面这个xpath取出的是<span>,但我想取出那个<a>啊……
//span[contains(a, "下载")]

2277 次点击
所在节点    编程
6 条回复
hcymk2
2015-01-15 15:28:38 +08:00
//span[a=下载']/a
hcymk2
2015-01-15 15:29:35 +08:00
...
少了个引号
//span[a='下载']/a
imn1
2015-01-15 15:46:25 +08:00
//a[text()='下载']
//a[contains(text(), "下载")]

建议你 google 搜索 'xpath css cheatsheet',会找到两份 pdf,自己留下,很有用的
信得过(不是说我,是这个链接)的就点 http://bit.ly/gTd5oc ,就是这两份
stupidcat
2015-01-15 16:04:35 +08:00
@hcymk2 我测试了一下,这样返回的是所有的<a>啊……
你看,首先找到子元素有“包含了‘下载’的a”的span,然后找到这个span的a,那么不就返回这个span下面所有的a了。。。?
stupidcat
2015-01-15 16:07:06 +08:00
@imn1 很有用,已经下载了,谢谢~~
hcymk2
2015-01-15 16:10:08 +08:00
@stupidcat
我弄错了。。 应该用//span/a[text()='下载']

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/162414

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX