问题是我正在寻找构建一个 XPath 表达式来获取具有属性 XXX 的节点,该节点具有像 TP* 这样的值,其中星号是一个数字。
假设我有这个 XML 文件

<tagA attA="VAL1">text</tagA>
<tagB attB="VAL333">text</tagB>
<tagA attA="VAL2">text</tagA>
<tagA attA="V2">text</tagA>

所以 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]

如果 @attA 不能是 "VAL0" ,那么只要
//tagA[boolean(number(substring-after(@attA, "VAL")))]

关于java - 如何使用 XPath 匹配以数字结尾的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52742754/

10-11 00:04