gpt4 book ai didi

java - 使用 apache commons 配置 xpath 查询具有属性的空 XML 元素

转载 作者:数据小太阳 更新时间:2023-10-29 01:57:35 25 4
gpt4 key购买 nike

我正在使用带有 XPATH 表达式引擎的 apache 公共(public)配置 XMLConfiguration 对象来查询 XML 文件。我是 xpath 和 apache commons 的新手,语法有问题。

xml 文件如下所示:

<attrs>
<attr name="my_name" val="the_val"/>
<attr name="my_name2" val="the_val2"/>
</attrs>

我基本上想做的是使用 commons 循环遍历所有属性并在每一行读取 name 和 val。我能找到所有东西的唯一方法是用 name 的值再次查询 xml。我觉得这有点不对劲,有没有更好的方法?

List<String> names = config.getList("attrs/attr/@name");
for( String name : names )
{
String val = config.getString("attrs/attr[@name='" +name +"']/@val" );
System.out.println("name:" +name +" VAL:" +val);
}

还有到 String 的转换,我不确定处理它的正确方法。

最佳答案

一个选项是选择 attr 元素并将它们迭代为 HierarchicalConfiguration 对象:

List<HierarchicalConfiguration> nodes = config.configurationsAt("attrs/attr");
for(HierarchicalConfiguration c : nodes ) {
ConfigurationNode node = c.getRootNode();
System.out.println(
"name:" + ((ConfigurationNode)
node.getAttributes("name").get(0)).getValue() +
" VAL:" + ((ConfigurationNode)
node.getAttributes("val").get(0)).getValue());
}

这不是很漂亮,但它确实有效。

关于java - 使用 apache commons 配置 xpath 查询具有属性的空 XML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com