2016-11-15 6 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 методов в соответствии с ожидаемым типом.

Для примера скажем, что я хочу, чтобы получить значение name и length, я бы продолжить в следующем:

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");