2013-10-29 20 views
6

Merhaba Bir web hizmetinden bir dize geri dönüyorum.java dizeyi xml'ye ve ayrıştırma düğümüne dönüştürün

Bu dizeyi ayrıştırıp metni hata iletisine almam gerekir mi?

Benim dize şöyle görünür:

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

sadece dize ayrıştırmak ya sonra xml ayrıştırmak için dönüştürmek için daha mı iyi?

+0

REST kullanıyor musunuz? –

+0

evet ................ –

cevap

13

Ben Java'nın XML belgesi kütüphanelerini kullanmayı tercih ediyorum. Biraz dağınık ama işe yarıyor.

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

bu benim için çalıştı! ... teşekkürler –

+0

Bu benim için de çalışıyor. Teşekkürler – mavi

1

Bu bir XML belgesi. Bir XML ayrıştırıcısı kullanın.

, numaralı dizgeyi, string işlemlerini kullanarak halledebilirsiniz. Ancak, kod çözme, karakter kodlamaları, CDATA bölümleri vb. Için endişelenmeniz gerekir. Bir XML ayrıştırıcı sizin için tüm bunları yapar.

Ham DOM/SAX uygulamalarını kullanmaktan daha basit bir XML ayrıştırma yaklaşımı için JDOM'a bakın.

2

Büyük olasılıkla DOM kullanarak XML'e dönüştürmek için bir XML ayrıştırıcısı kullanırım, sonra metni alırım. Eğer denemek ve sonra kendiniz ayrıştırmak Eğer

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

böyle şeylerin faul düşebilir: Bu sağlam olmak ve bu tür bir şey dışarı yorumladı edilmiş böyle bir çizgi olarak herhangi bir olağandışı durumlarla başa çıkma avantajına sahiptir . Ayrıca, gereksinimler büyüdüğünde, kodunuzu değiştirmenin gerçekten kolay olması avantajına sahiptir.

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

İlgili konular