2016-11-15 20 views
0

我有一个像这样的xml。xmlConfig.configurationAt没有取值

<card> 
    <name>VISA</name> 
    <id>0</id> 
    <length> 
     <value>16</value> 
    </length> 
    <bin> 
     <range> 
      <start>4</start> 
     </range> 
    </bin> 
</card> 

这是我用来加载这个和解析这个XML的代码。

private XMLConfiguration loadInputXml(final String responseXml) 
     throws ConfigurationException { 
    final XMLConfiguration xmlConfig = new XMLConfiguration(); 
    xmlConfig.setDelimiterParsingDisabled(true); 
    xmlConfig.setValidating(false); 
    xmlConfig.load(new ByteArrayInputStream(responseXml.getBytes())); 
    return xmlConfig; 
} 

现在我想通过这个代码

XMLConfiguration xmlConfig = loadInputXml(xmlString); 
List<HierarchicalConfiguration> cardList = xmlConfig 
     .configurationsAt("card"); 

我无法获取子节点获取的值,我没有得到任何错误,因此我无法找到根它的原因。 需要帮助。 提前致谢!

+0

我应该用什么?我第一次使用这个。 –

回答

0

xmlConfig.configurationAt不取任何值,因为card的根元素XML所以调用configurationsAt("card")将使搜索元素card根元素里,在这里,你有没有这样的元素,所以你什么也得不到。

对我来说,你尝试做什么,没有什么意义,但如果由于未知的原因,你真的需要访问根元素configurationsAt而不是空的String作为参数,使它获取根元素为下一页:

List<HierarchicalConfiguration> cardList = xmlConfig.configurationsAt(""); 

你应该做的,而仅仅是使用类XMLConfiguration的您的实例来访问你的物业,根据期望类型getXXX方法之一。

例如,让我们说,我想要得到的namelength的价值,我会继续为未来:

XMLConfiguration xmlConfig = ... 
// Get as String the text content of the element name 
String name = xmlConfig.getString("name"); 
// Get as int the text content of the element value of the first element length 
int length = xmlConfig.getInt("length(0).value");