您好,我正在从网络服务中取回一个字符串。
我需要解析这个字符串并获取错误消息中的文本吗?
我的字符串如下所示:
<response>
<returnCode>-2</returnCode>
<error>
<errorCode>100</errorCode>
<errorMessage>ERROR HERE!!!</errorMessage>
</error>
</response>
只解析字符串或转换为xml然后解析更好吗?
您好,我正在从网络服务中取回一个字符串。
我需要解析这个字符串并获取错误消息中的文本吗?
我的字符串如下所示:
<response>
<returnCode>-2</returnCode>
<error>
<errorCode>100</errorCode>
<errorMessage>ERROR HERE!!!</errorMessage>
</error>
</response>
只解析字符串或转换为xml然后解析更好吗?
我会使用 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
}
我可能会使用 XML 解析器使用 DOM 将其转换为 XML,然后获取文本。这具有健壮性和应对任何异常情况的优点,例如这样的行,其中某些内容已被注释掉:
<!-- commented out <errorMessage>ERROR HERE!!!</errorMessage> -->
如果您尝试自己解析它,那么您可能会遇到这样的事情。它还有一个好处是,如果需求扩大,那么改变你的代码真的很容易。
http://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm
它是一个 XML 文档。使用 XML 解析器。
您可以使用字符串操作将其分开。但是您必须担心实体解码、字符编码、CDATA 部分等。XML 解析器将为您完成所有这些工作。
查看JDOM以获得比使用原始 DOM/SAX 实现更简单的 XML 解析方法。