我在这个常规领域已经看到了一些问题,但找不到任何特定于Java的内容并提取单个节点值。
我有一个Web服务,它返回如下格式的值:
<string xmlns="http://tempuri.org/">Hello</string>
在Android应用程序中,我正在尝试检索&#39; Hello&#39;在没有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 :(得分:2)
更改行
return nodes.item(0).getNodeValue().toString();
到
return nodes.item(0).getTextContent();