2013-03-14 2 views
0

У меня есть следующий SOAP сообщение:Синтаксические и проверка правильности XML с пространствами имен в JAVA

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://test.testMessage.com/v2/TestMessage/schema"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <sch:input> 
     <sch:header> 
       <sch:MessageName>ChangePurchaseOrder</sch:MessageName> 
      </sch:header> 
     <sch:payload> 
      <sch:xmlData> 
      </sch:xmlData> 
     </sch:payload> 
    </sch:input> 
    </soapenv:Body> 
    </soapenv:Envelope> 

Мне нужно разобрать его (с пространствами имен) и получить только «входной» узел в новый документ. как показано ниже:

<sch:input xmlns:sch="http://test.testMessage.com/v2/TestMessage/schema"> 
    <sch:header> 
      <sch:MessageName>ChangePurchaseOrder</sch:MessageName> 
     </sch:header> 
    <sch:payload> 
     <sch:xmlData> 
     </sch:xmlData> 
    </sch:payload> 
</sch:input> 

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

Я пробовал что-то вроде этого до сих пор: NodeList inputNodeList = doc.getElementsByTagNameNS (namespaceURI, "sch: input");

но когда я делаю int length = inputNodeList.getLength();

Я получаю значение «длина» как 0, где, как предполагается, будет 1. Любая помощь будет оценена!

спасибо!

ответ

Смежные вопросы