Java 使用Commons配置获取特定的XML子值
假设我们有以下XML:Java 使用Commons配置获取特定的XML子值,java,xml,xpath,apache-commons,apache-commons-config,Java,Xml,Xpath,Apache Commons,Apache Commons Config,假设我们有以下XML: <root> <sub> <id>1</id> <values> <value>1</value> <value>2</value> </values> </sub> <sub> <id&g
<root>
<sub>
<id>1</id>
<values>
<value>1</value>
<value>2</value>
</values>
</sub>
<sub>
<id>2</id>
<values>
<value>16</value>
<value>15</value>
</values>
</sub>
</root>
1.
1.
2.
2.
16
15
我想使用Apache Commons配置获得的是:我想使用id
2获取sub
的所有值。我怎样才能做到这一点?我在文档中找不到关于如何使用动态层次结构编号进行查询的信息。您可以使用XPath:
//sub[id = 2]/values/value
/
通常会导致执行缓慢(导致搜索整个XML(子)树)
使用:
/*/sub[id = 2]/values/value
这将选择任何
value
元素,该元素是values
元素的子元素,该元素是sub
元素的子元素,其id
子元素具有字符串值“2”
,并且(该sub
)是XML文档顶部元素的子元素。太棒了,这很快。工作完美。似乎可以在本主题中改进文档:)谢谢,这在处理大型xml配置时非常有用