如何编写XPath定位同一formset内重复name属性的form元素?
定位同一formset内重复name属性的form元素的XPath表达式
示例XML结构
<form-validation> <formset> <form name="BookForm"> ... </form> <form name="BookForm"> ... </form> <!-- 目标定位元素 --> </formset> <formset> <form name="BookForm"> ... </form> <!-- 无需定位此元素 --> </formset> </form-validation>
需求说明
需要定位同一formset节点内,name属性值与同层级前一个form元素完全相同的重复form元素(即示例中第一个formset里的第二个<form>)。
对应的XPath表达式
//formset/form[preceding-sibling::form[1]/@name = @name]
表达式解释
//formset/form:先匹配所有位于formset节点下的form元素[preceding-sibling::form[1]/@name = @name]:添加过滤条件,仅保留满足以下要求的form:preceding-sibling::form[1]:取当前form的同层级前第一个兄弟form元素(preceding-sibling只会查找同一父节点下的前置兄弟,天然限定在同一个formset内)- 对比该前置兄弟的
name属性与当前form的name属性值是否相等,相等则匹配成功
内容的提问来源于stack exchange,提问作者yiqing
相关产品推荐
相关产品推荐

