我想在Apache common lib中使用XMLConfiguration从XML读取值 下面是我的XML文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<PropertyList>
<Property>
<Name>Timeout</Name>
<Value>60</Value>
<Description>Timeout</Description>
<DefaultValue/>
</Property>
<Property>
<Name>Key</Name>
<Value>csieulasdj8932jdl23kh4</Value>
<Description/>
<DefaultValue/>
</Property>
</PropertyList>
以下是我的代码
XMLConfiguration config = new XMLConfiguration(filePath);
config.setProperty("addproperty", "this is added by configuration" );
config.save();
logger.trace("Key : " + "Property[Name='" + "Key" + "']/Value");
logger.trace("Key value: " + config.getString("Property[Name='" + "Key" + "']/Value"));
我将在filePath参数中给出XML文件的位置。并且setProperty和save已成功,因为XML文件肯定已被修改为如下所示:
<PropertyList>
<Property>
<Name>Timeout</Name>
<Value>60</Value>
<Description>Timeout</Description>
<DefaultValue/>
</Property>
<Property>
<Name>Key</Name>
<Value>csieulasdj8932jdl23kh4</Value>
<Description/>
<DefaultValue/>
</Property>
<addproperty>this is added by configuration</addproperty>
</PropertyList>
但是,我不知道为什么第二个记录器总是打印&#34;键值:null&#34;,它应该是&#34;键值:csieulasdj8932jdl23kh4&#34;不是吗?或者我在代码中写了错误的XPath表达式?
由于
答案 0 :(得分:0)
我已将XPathExpressionEngine
设置为ExpressionEngine
的{{1}}来解决此问题。
XMLConfiguration