XPath 选择具有某些属性值的节点等于其他某个相同级别节点的属性值


<form-validation>
<formset>
<form name="BookForm"> ... </form>
<form name="BookForm"> ... </form> <!-- This is what I want to locate -->
</formset>
<formset>
<form name="BookForm"> ... </form> <!-- but not locate this line -->
</formset>
</form-validation>

我想找到重复的表单名称元素(属性值与前一个相同)在单个formset中. 我应该如何编写xPath表达式?

谢谢!

您可以使用例如//formset/form[@name = 'BookForm'][2]

在你的评论中,你说你想找到重复的名称,在XPath 3.1中,这是可能的,例如

map:merge(//formset/form/map { string(@name) : . }, map { 'duplicates' : 'combine' }) => map:for-each(function($k, $v) { $k[$v[2]] })

最新更新