2013-10-29 25 views
6

こんにちは、Webサービスから文字列を取得しています。javaを文字列に変換してXMLを解析します。

この文字列を解析し、エラーメッセージでテキストを取得する必要がありますか?

私の文字列は次のようになります。

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

はそれだけで文字列を解析したり、解析し、その後XMLに変換するためのより良いですか?

+0

あなたはRESTを使用していますか? –

+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 
} 
+0

これは私のために働いた!! ...ありがとう –

+0

それは私のためにも働く。ありがとう – mavi

1

これはXMLドキュメントです。 XMLパーサを使用します。

は、文字列操作を使用して離れていてもかまいません。しかし、エンティティのデコード、文字エンコーディング、CDATAセクションなどを心配する必要があります.XMLパーサはこれをすべて行います。

生DOM/SAX実装を使用するよりも簡単なXML解析手法として、JDOMを参照してください。

2

おそらくXMLパーサーを使用してDOMを使用してXMLに変換し、次にテキストを取得します。

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

あなた自身を試してみて、それを解析した場合、あなたはこのようなもののファウルを落ちるかもしれません:これは何かがコメントアウトされた堅牢であることや、このようなラインなど、異常な状況に対処するという利点を有します。また、要件が拡張されると、コードを変更するのが簡単になるという利点もあります。

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

関連する問題