java - XML 字符串到对象数组

标签 java xml web-services

我从网络服务收到一个 String 响应,如下所示。

<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body><ns2:getTitlesResponse xmlns:ns2="http://localhost:8080/wsGrabber/GrabberService">
        <return>
            <titles>sampleTitle</titles>
            <urls>http://sample.com</urls>
        </return>
    </ns2:getTitlesResponse>
    </S:Body>
</S:Envelope>

如何获取数组标题和网址?

最佳答案

如果您想在 XML 文件中搜索某些内容,则应该使用 XPath。

try {
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
                .newInstance();
        documentBuilderFactory.setNamespaceAware(true);
        DocumentBuilder builder = documentBuilderFactory
                .newDocumentBuilder();
        Document doc = builder.parse("path/to/xml/MyXML.xml");

        XPathFactory xPathFactory = XPathFactory.newInstance();
        XPath xpath = xPathFactory.newXPath();

        XPathExpression expression = xpath
                .compile("//titles");

        NodeList nodes = (NodeList) expression.evaluate(doc,
                XPathConstants.NODESET);

        for (int i = 0; i < nodes.getLength(); i++) {
            //System.out.println(nodes.item(i).getNodeName());
            System.out.println(nodes.item(i).getTextContent());
        }
    } catch (Exception exception) {
        exception.printStackTrace();
    }

编辑

 String input = "XMLAsString";
 InputStream is= new ByteArrayInputStream(input.getBytes());
 Document doc = builder.parse(is);

关于java - XML 字符串到对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16273871/

相关文章:

java网络服务

java - 找到子字符串,但正则表达式失败

java - 数学和数组

c# - 从 XML 文档生成 LINQ to XML C# 代码?

java - 使用嵌套循环并返回多个值来解析 XML

java - 将 SOAP XML 响应写入文件

web-services - 使用 API 的文件共享服务?

java - 用户输入并附加到mysql

java - 如何将多个 java.awt.image.BufferedImage 传递给 Matlab

c# - 使用 XDocument 和 LINQ 解析具有元素对的 XML