2014-02-01 2 views
0

Я бы следующий пример SOAP сообщения:Как синтаксический анализ SOAP с JDOM

 <?xml version="1.0"?> 
    <SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
    <SOAP-ENV:Body> 
    <CREATE__CompIntfc__SUPPORT_DOC_TBL> 
     <SUPPORT_DOC_ID>POLICE</SUPPORT_DOC_ID> 
     <SUPPORT_DOC> 
      <DESCR>Police Report</DESCR> 
      <DESCRSHORT>Police</DESCRSHORT> 
     </SUPPORT_DOC> 
    </CREATE__CompIntfc__SUPPORT_DOC_TBL> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

и мне нужно разобрать элемент. Я writig следующего кода для выполнения этой задачи, но это ее не работаю:

    File inputXML=new     File("/home/igor/IdeaProjects/jdomtest/src/main/resources/example.xsd"); 
    SAXBuilder saxBuilder=new SAXBuilder(); 
    try{ 
     Document rootElement=saxBuilder.build(inputXML); 
     Element element=rootElement.getRootElement(); 

    Namespace ns=Namespace.getNamespace() 
     List<Element> list=element.getChildren("Body"); 
System.out.print(list.size()); 

    for (int i=0;i<list.size();i++){ 
    Element el = (Element)list.get(i); 
    System.out.println(el); 
    } 

    }catch (Exception exp){ 
     exp.printStackTrace(); 
    } 

Но это не любая wirting на экране

ответ

1

Элемент тела находится в http://schemas.xmlsoap.org/soap/envelope/ пространства имен, но вы используете один метод аргумент getChildren который ищет элементы в no namespace. Вам необходимо передать подходящую Namespace в версию с двумя аргументами getChildren.

+0

Это работа спасибо – igor29