关于使用XMLConfiguration从XML读取值为空

时间:2014-08-03 09:01:02

标签: java xml apache xpath

我想在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表达式?

由于

1 个答案:

答案 0 :(得分:0)

我已将XPathExpressionEngine设置为ExpressionEngine的{​​{1}}来解决此问题。

XMLConfiguration