java - 如何使用 XPath 匹配以数字结尾的字符串
问题描述
问题是我正在寻找构建一个 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")))]
推荐阅读
- svelte - context="module" 如何在 Svelte 和 Sapper 中工作?
- c# - 在 c# 中正确使用取消令牌
- html - 设置克隆元素jQuery的nth-child(n)值
- css - 如何从引导程序 4 中的导航选项卡中删除底线?
- import - 是否可以在 Xcode 中以编程方式添加具有默认测试类的 UI 测试目标?
- python - 为什么训练很好但即使是训练样本也无法预测任何东西
- php - 注册表单 - 拒绝某些条件并向用户返回消息
- javascript - 如果 process.env.VUE_APP_* 环境变量之一无法解析,如何使 vue-cli-service 失败
- python - Prodigy + Spacy 训练数据集
- maven - 如何设置 Maven 以启用 JSF2 资源版本控制?