1

我需要根据目录检查变量,以查看这些兄弟节点中的任何一个是否具有等于该变量的属性。我知道 '=' 和 'contain' 不适用于通配符,所以我正在考虑使用 for-each 和选择,但我不知道如何创建某种变量或标记来告诉我是否有匹配与否。

4

1 回答 1

0

使用带有contains函数的谓词来检查是否存在。例如:

<file>photo</file>
<path name="local">desktop</path>

在这种情况下,使用following-sibling带星号的轴检查具有属性节点的节点的所有兄弟file节点,然后使用谓词检查local节点值集中是否存在字符串:

//file/following-sibling::*/@*[contains(../@*, 'local')]"

该变量只会替换字符串:

//file/following-sibling::*/@*[contains(../@*, $foo)]"

参考

于 2013-09-23T22:51:19.060 回答