2017-02-15 126 views
0

我在这个一般区域中看到了一些问题,但找不到特定于Java的任何内容并拉取单个节点值。从Web服务响应中解析单个XML节点

我有一个返回格式化像这样值的Web服务:

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

在Android应用程序中,我试图找回在中间的“你好”的一部分,而不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

伟大的作品,谢谢! –