选择包含“foo”的属性的正确XPath是什么?

给定此XML,XPath将返回其prop属性包含Foo的所有元素(前三个节点):

<bla>
<a prop=“Foo1”/>
<a prop=“Foo2”/>
<a prop=“3Foo”/gt;
<a prop=“Bar”/>
&lt/bla>
//a[包含(@prop,'Foo')]

如果我使用此XML返回结果,则可以正常工作

<bla>
<a prop=“Foo1”>a&lt/a>
<a prop=“Foo2”>b&lt/a>
<a prop=“3Foo”>c&lt/a>
<a prop=“Bar”>a&lt/a>
&lt/bla>

编辑:
另一件需要注意的事情是,尽管上面的XPath将返回特定xml的正确答案,但如果您想保证只获得元素“bla”中的“a”元素,那么您应该像其他人提到的那样使用

/bla/a[包含(@prop,'Foo')]

这将搜索整个xml文档中的所有“a”元素,而不考虑嵌套在“blah”元素中

//a[包含(@prop,'Foo')]

我加上这句话是为了彻底起见,也是为了表达我的观点。:)

发表评论