2016-11-15 43 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");