我需要根据目录检查一个变量,以查看是否有任何兄弟节点具有等于该变量的属性。我知道'='和' contains '不与通配符一起工作,所以我在考虑使用for-each和choose,但我不知道如何创建某种类型的变量或标记,告诉我是否有一个匹配。
使用contains
函数的谓词来检查是否存在。例如:
<file>photo</file>
<path name="local">desktop</path>
在本例中,使用带星号的following-sibling
轴检查具有属性节点的file
节点的所有兄弟节点,然后使用谓词检查节点值集中是否存在字符串local
:
//file/following-sibling::*/@*[contains(../@*, 'local')]"
变量将替换字符串:
//file/following-sibling::*/@*[contains(../@*, $foo)]"
引用
- MDN: XPath轴