java将字符串转换为xml和解析节点

时间:2013-10-29 14:28:10

标签: java xml web-services

您好我从Web服务中获取了一个字符串。

我需要解析此字符串并在错误消息中获取文本吗?

我的字符串如下所示:

<response>
<returnCode>-2</returnCode>
<error>
<errorCode>100</errorCode>
<errorMessage>ERROR HERE!!!</errorMessage>
</error>
</response>

解析字符串或转换为xml然后解析是否更好?

3 个答案:

答案 0 :(得分:13)

我使用Java的XML文档库。这有点乱,但有效。

String xml = "<response>\n" +
             "<returnCode>-2</returnCode>\n" +
             "<error>\n" +
             "<errorCode>100</errorCode>\n" +
             "<errorMessage>ERROR HERE!!!</errorMessage>\n" +
             "</error>\n" +
             "</response>";
Document doc = DocumentBuilderFactory.newInstance()
                                     .newDocumentBuilder()
                                     .parse(new InputSource(new StringReader(xml)));

NodeList errNodes = doc.getElementsByTagName("error");
if (errNodes.getLength() > 0) {
    Element err = (Element)errNodes.item(0);
    System.out.println(err.getElementsByTagName("errorMessage")
                          .item(0)
                          .getTextContent());
} else { 
        // success
}

答案 1 :(得分:2)

我可能会使用XML解析器使用DOM将其转换为XML,然后获取文本。这样做的好处是可以强大并应对任何异常情况,例如像这样的行,其中有一些东西被注释掉了:

<!-- commented out <errorMessage>ERROR HERE!!!</errorMessage> -->

如果您尝试自己解析它,那么您可能会犯这样的事情。此外,它的优点是,如果需求扩展,那么很容易更改代码。

http://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm

答案 2 :(得分:1)

这是一个XML文档。使用XML解析器。

可以使用字符串操作来分开它。但你必须担心实体解码,字符编码,CDATA部分等。一个XML解析器将为你做所有这些。

查看JDOM以获得比使用原始DOM / SAX实现更简单的XML解析方法。