2017-02-15 2 views
0

Я видел несколько вопросов в этой общей области, но не могу найти ничего конкретного для Java и вытащить значение одного узла.Анализ одного XML-узла из ответа веб-службы

У меня есть веб-службы, которая возвращает значения, отформатированные как так:

<string xmlns="http://tempuri.org/">Hello</string> 

В приложении Android, я пытаюсь извлечь «Hello» часть в середине без XML тегов.

У меня в настоящее время метода, как так сделать это:

public static String getParsedString(String xml) 
{ 
    try 
    { 
     DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); 
     InputSource input = new InputSource(); 
     StringReader stringReader = new StringReader(xml); 
     input.setCharacterStream(stringReader); 

     Document document = documentBuilder.parse(input); 

     NodeList nodes = document.getElementsByTagName("string"); 
     return nodes.item(0).getNodeValue().toString(); 
    } 
    catch(Exception ex) 
    { 
     ex.printStackTrace(); 
    } 

    return null; 
} 

Однако узел разбираемым, по-видимому, не содержит никаких данных, так как при попытке метода toString(), он выдает следующее сообщение об ошибке.

java.lang.NullPointerException

Я не уверен, что нужно учесть xmlns="http://tempuri.org/" в документе синтаксического анализа, но я не могу понять это.

+0

Первая попытка для XML корневого элемента, а затем искать конкретный элемент –

ответ

1

Изменение линии

return nodes.item(0).getNodeValue().toString(); 

в

return nodes.item(0).getTextContent(); 
+1

Работает отлично, спасибо! –