从 Web 服务响应中解析单个 XML 节点
Posted
技术标签:
【中文标题】从 Web 服务响应中解析单个 XML 节点【英文标题】:Parsing Single XML Node From Web Service Response 【发布时间】:2017-07-04 02:09:30 【问题描述】:我在这个一般领域看到了一些问题,但找不到任何特定于 Java 和提取单个节点值的内容。
我有一个 Web 服务,它返回格式如下:
<string xmlns="http://tempuri.org/">Hello</string>
在 android 应用程序中,我试图检索中间没有 XML
标记的“Hello”部分。
我目前有这样的方法:
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/"
,但我想不通。
【问题讨论】:
先尝试xml根元素,然后寻找特定元素 【参考方案1】:换行
return nodes.item(0).getNodeValue().toString();
到
return nodes.item(0).getTextContent();
【讨论】:
以上是关于从 Web 服务响应中解析单个 XML 节点的主要内容,如果未能解决你的问题,请参考以下文章
在 Web 服务中解析数据 Json 或 XML 哪个更快?
为啥 XML 仍然用于 Web 服务响应,即使 JSON 更好? [关闭]