在 xpath 上的过滤后使用索引
Posted
技术标签:
【中文标题】在 xpath 上的过滤后使用索引【英文标题】:Use index on after filter on xpath 【发布时间】:2013-07-02 08:06:16 【问题描述】:我有以下 xml 片段。
<root>
<site type="main">
<link>http://stackexchange.com</link>
</site>
<site type="qa">
<link>http://***.com</link>
</site>
<site type="qa">
<link>http://superuser.com</link>
</site>
<site type="">
<link>http://data.stackexchange.com</link>
</site>
</root>
我想选择“qa”类型的第一个站点的链接。我认为//site[@type="qa"][1]
应该这样做。但是 id 不起作用。
【问题讨论】:
【参考方案1】:试试(//site[@type="qa"])[1]/link/text()
。
或者,或者:
//site[@type="qa"][position()=1]/link/text()
在http://www.xpathtester.com/ 上测试,结果为http://***.com
。
【讨论】:
为什么//site[@type="qa" and position() = 1]/link/text()
不起作用?
您要求两个条件同时为真。您应该首先搜索qa
属性,然后检查位置://site[@type="qa"][position()=1]/link/text()
。另请参阅answer。以上是关于在 xpath 上的过滤后使用索引的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 字符集/collate 不同导致无法使用索引过滤
MySQL 字符集/collate 不同导致无法使用索引过滤
过滤后的 didSelectRowAtIndexPath 索引路径 UISearchController - Swift