xml - 如何使用路径表达式从数组中获取属性的值
问题描述
考虑下面的示例 xml。
<Groups>
<Group id="01" check="true">
<name>Value</name>
<age>test</age>
<setData>
<data type="module">module</data>
<data enabled="true">true</data>
</setData>
</Group>
<Group id="02" check="true">
<name>Value</name>
<age>test</age>
<setData>
<data type="module">module</data>
<data enabled="true">true</data>
</setData>
</Group>
</Groups>
我想使用路径表达式在 setData 中为 GroupId = 1 获取启用的值。下面是我的尝试。这是对问题的临时修复,但会在数组中查找位置。
String groupId = "1"; //to make group id dynamic.
String pathExpression = "Groups/group[@id='"+groupId+"']/setData/data[2]/text()"
而不是这个,我想通过给属性名称“启用”来获取值,这样它就会检查名称而不是位置。
解决方案
您已经在使用正确的语法来获取group
属性值,所以只需对data
元素执行类似的操作,除非您不需要检查属性值,只要它存在......
String pathExpression = "Groups/group[@id='"+groupId+"']/setData/data[@enabled]/text()"
推荐阅读
- git - 向 git flow 添加附加命令
- typescript - Protractor with Typescript - 如何从 Stack Trace 中了解哪条线测试失败?
- html - 使用 rvest 抓取 ID 属性
- ionic-framework - 无法绑定到“ngForOf”,因为它不是“div”的已知属性。*ngFor 不适用于 ionic 5
- python - 如果另一列中的值彼此相邻,则对数据框中的列值求和
- google-bigquery - 为什么 BigQuery 执行引擎 Dremel 需要在处理数据之前将数据从 BigQuery 文件系统加载到本地存储?
- laravel - 创建三个表之间的关系
- reactjs - React Redux - 如何进行双重调度
- python - 如何在 TF2 的 Keras Lambda 层中包装冻结的 Tensoflow 图?
- r - 使用聚合的加权平均值