Sof*_*ane 5 java xml xpath java-8
问题是我正在寻找构建一个 XPath 表达式来获取具有属性 XXX 的节点,该节点具有像 TP* 这样的值,其中星号是一个数字。假设我有这个 XML 文件
<tagA attA="VAL1">text</tagA>
<tagB attB="VAL333">text</tagB>
<tagA attA="VAL2">text</tagA>
<tagA attA="V2">text</tagA>
Run Code Online (Sandbox Code Playgroud)
所以 xpath 表达式应该让我所有的tagA属性都具有attrA模式的值VAL*
//tagA[@attrA[matches('VAL\d')]]:不起作用
请问有什么帮助吗?
如果您需要 XPath 1.0 解决方案,请尝试以下操作:
//tagA[boolean(number(substring-after(@attA, "VAL"))) or number(substring-after(@attA, "VAL")) = 0]
Run Code Online (Sandbox Code Playgroud)
如果@attA不能"VAL0",那么就
//tagA[boolean(number(substring-after(@attA, "VAL")))]
Run Code Online (Sandbox Code Playgroud)