gpt4 book ai didi

java - 如何在 Apache Commons Configuration 中使用 XPath 按值查询 XMLConfiguration?

转载 作者:行者123 更新时间:2023-12-01 16:35:14 24 4
gpt4 key购买 nike

所以我有以下 XML 文件。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<omg>
<configurationCreated>23/05/20 01:19:30</configurationCreated>
<sites>
<site>
<name>qwer1</name>
<another>lol1</another>
</site>
<site>
<name>qwer2</name>
<another>lol2</another>
</site>
</sites>
</omg>

我正在尝试查询名为 qwer2site,以检查它是否已存在于文件中。我该怎么做?

这是我在 Java 中尝试过的(我有点遵循这个 guide )。

Parameters parameters = new Parameters();

FileBasedConfigurationBuilder<XMLConfiguration> builder = new FileBasedConfigurationBuilder<XMLConfiguration>(XMLConfiguration.class)
.configure(parameters
.xml()
.setFileName("mahfile.xml")
.setExpressionEngine(new XPathExpressionEngine()));

builder.setAutoSave(true);

try {
configuration = builder.getConfiguration();
} catch (ConfigurationException e) {
return;
}

configuration.getList("omg/sites[site[name='qwer2']]")

不幸的是,我得到一个空列表(并且无法检查它的大小(以便检查里面有多少个网站)),因此查询似乎失败了。我做错了什么?

我还尝试了 omg/sites/site[name='qwer2'] ,它适用于 this xpath exerciser但不在我的代码中,我仍然得到一个空列表。

最佳答案

好吧,经过大量的文档阅读和尝试后,我发现这是计算元素数量并判断我的 xml 节点是否已经存在的最佳方法。 configurationsAt() 返回 xml 节点,在本例中称为“分层配置对象”。

configuration.configurationsAt("//site[name = 'qwer2']").size()

关于java - 如何在 Apache Commons Configuration 中使用 XPath 按值查询 XMLConfiguration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61965771/

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