Как получить org.apache.axis.message.MessageElement - PullRequest
0 голосов
/ 15 ноября 2018

Я пользуюсь веб-сервисом с мылом.Я вызываю службу, затем возвращаю тип MessageElement.Но я использую эту информацию.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <KargoBilgileriByReferansResponse xmlns="http://tempuri.org/">
         <KargoBilgileriByReferansResult>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
               <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                  <xs:complexType>
                     <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="Table1">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="name" type="xs:string" minOccurs="0"/>
                                 <xs:element name="surname" type="xs:string" minOccurs="0"/>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:choice>
                  </xs:complexType>
               </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
               <NewDataSet xmlns="">
                  <Table1 diffgr:id="Table11" msdata:rowOrder="0">
                     <name>john</name>
                     <surname>doe</surname>
               </Table1>
               </NewDataSet>
            </diffgr:diffgram>
         </KargoBilgileriByReferansResult>
         <pWsError/>
      </KargoBilgileriByReferansResponse>
   </soap:Body>
</soap:Envelope>

это ответ мыльного интерфейса.Например, я хотел бы имя.Как получить имя и фамилию?

Эта информация типа MessageElement [] array.

1 Ответ

0 голосов
/ 15 ноября 2018

Вы должны использовать этот способ.

Node portType = (Node) messageElements[1].getElementsByTagName("NewDataSet").item(0);
NodeList operations = portType.getChildNodes();
NodeList operations2=operations.item(0).getChildNodes();
NodeList operations3=operations2.item(0).getChildNodes(); 
NodeList operations4=operations2.item(1).getChildNodes(); 
System.out.println(operations3.item(0).getParentNode().getNodeName()+" - "+operations3.item(0).getNodeValue()); 
System.out.println(operations4.item(0).getParentNode().getNodeName()+" - "+operations4.item(0).getNodeValue()); 

консольный журнал

  • имя - Джон
  • фамилия - Доу
...