您好,我正在從web服務獲取字符串。java將字符串轉換爲xml並解析節點
我需要解析這個字符串並獲取錯誤信息中的文本?
我的字符串如下所示:
<response>
<returnCode>-2</returnCode>
<error>
<errorCode>100</errorCode>
<errorMessage>ERROR HERE!!!</errorMessage>
</error>
</response>
是更好地只解析字符串或轉換爲XML然後解析?
您好,我正在從web服務獲取字符串。java將字符串轉換爲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
}
這對我有用!! ...謝謝 –
它也適用於我。謝謝 – mavi
這是一個XML文檔。使用XML解析器。
您可能使用字符串操作將它分開。但是你必須擔心實體解碼,字符編碼,CDATA部分等。XML解析器將爲你做所有這些。
檢出JDOM以獲得比使用原始DOM/SAX實現更簡單的XML解析方法。
我可能會使用XML解析器使用DOM將其轉換爲XML,然後獲取文本。這具有強大和有任何異常情況的應對,如這樣的行,其中一些已被註釋掉的優勢:
<!-- commented out <errorMessage>ERROR HERE!!!</errorMessage> -->
如果你試圖自己解析它,那麼你可能會掉下東西犯規這樣的。另外它的優點是,如果需求擴大,那麼它很容易改變你的代碼。
http://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm
您使用的是REST嗎? –
是................ –