如何使用 XPath 匹配以数字结尾的字符串

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')]]:不起作用

请问有什么帮助吗?

And*_*son 7

如果您需要 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)