java - 如何从 SOAP 响应中获取单个元素的值? ( java )

标签 java android xml parsing dom

我想从以下输入流中获取“SearchResult”值:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
        <SearchResponse xmlns="[url here]">
            <SearchResult>[THIS VALUE HERE]</SearchResult>
        </SearchResponse>
      </soap12:Body>
</soap12:Envelope>

我一直在尝试使用 DOM 解析器,但遇到了麻烦,并且不确定这是否是正确的方法:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db;
Document doc = null;

db = factory.newDocumentBuilder();
InputSource inStream = new InputSource();
inStream.setCharacterStream(new StringReader(soapResponse));
doc = db.parse(inStream);  

NodeList nl = doc.getElementsByTagName("SearchResult");
//Not sure how to get the value... Everything I've tried returned "null". Help?

我该怎么做?

最佳答案

对于 Java 和 Android 8 级或更高版本: nodeList.item(0).getTextContent()

对于 Android 1 级及更高版本: nodeList.item(0).getFirstChild().getNodeValue()

关于java - 如何从 SOAP 响应中获取单个元素的值? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466701/

相关文章:

java - 如何在 Java 中高效地解析 200,000 个 XML 文件?

android - 以编程方式访问文件共享链接 - Google Drive、Android

xml - 使用 XSLT 查找给定一组参数的节点

xml - 如何通过XPath获取XML节点

Java getText JTextField

java - 为循环优化 JSonArray

php不向mysql插入json数据

android - 将 xml 用于第二个 Activity 的问题(R.id 问题)

c# - 将 XML 提要读入 XElement

java - Java 扩展类的 Hibernate 注解映射