给定以下XML,如何选择 uid
元素,其前面的兄弟是注释,其标准化文本值等于"VID_1128"或"Some Title"?这里的问题是"Some Title"在两个 <uid>
元素之前,所以我只想选择值为 3333
的 uid
元素 . 这可能与XPath 1.0有关,如果是这样的话怎么办?
<?xml version="1.0"?>
<uids>
<!-- Some Unique Text -->
<!-- VID_2564 -->
<uid>1111</uid>
<!-- Some Title -->
<!-- VID_8374 -->
<uid>2222</uid>
<!-- Some Title -->
<!-- VID_1128 -->
<uid>3333</uid>
<!-- A Different Title -->
<!-- VID_9581 -->
<uid>4444</uid>
</uids>
1 回答
这可以通过XPath-1.0实现,其方法如下:
您的目标有一个区别:
上面的XPath表达式遵循
and
的条件,而不是两个谓词之间的or
. 必须这样做才能仅选择3333
作为结果 .使用
or
而不是and
将导致节点集具有两个值:2222和3333 - 这不是您想要的 .