java - 从 Web 服务响应中解析单个 XML 节点

标签 java android xml web-services parsing

我在这个一般领域看到了一些问题,但找不到任何特定于 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/",但我想不通。

最佳答案

换行

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

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

关于java - 从 Web 服务响应中解析单个 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248973/

相关文章:

android - 找不到升级 Stripe SDK 的解决方案

javascript - iScroll 4 不适用于表单 <select> 元素 iPhone Safari 和 Android 浏览器

java - JAX-WS - 将异常映射到故障

java - JDK8 LocalDate.toEpochDay 性能异常下降

java - @drawable/new_logo 在哪里定义的?

android - 滚动时奇怪的webview黑色闪烁

java - 正则表达式查找最后一个大写单词和另一个单词之间的单词

Python 从单个标签解析 XML 变量

xml - 加密 ccnet.config TFS 登录详细信息

java - 在 android 中为 fragment 创建 "Shell"