考虑到这个简化的数据格式:
<a>
<b>
<c>C1</c>
<d>D1</d>
<e>E1</e>
<f>don't select this one</f>
</b>
<b>
<c>C2</c>
<d>D2</d>
<e>E1</e>
<g>don't select me</g>
</b>
<c>not this one</c>
<d>nor this one</d>
<e>definitely not this one</e>
</a>
你如何选择所有作为
B
元素的子元素的C
、D
和E
标签?基本上,可以这样实现:a/b/(c|d|e)
在我的情况下,与其只是a/b/
,导致选择那些C
、D
、E
节点的查询实际上相当复杂,因此我想避免这样做:
a/b/c|a/b/d|a/b/e
这是可能的吗?
local-name()
才是正确的。这是非常罕见的情况--通常人们确实关心kitchen:table
和sql:table
之间的差异,或者architecture:column
、sql:column
、array:column
、military:column
之间的差异。 - Dimitre Novatchev