次の SOAP メッセージがあります。
<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>
メッセージのその部分を抽出しようとしています。最初のスニペットから 2 番目のスニペットに示されているコードのセクションを抽出するのを手伝ってくれる人はいますか?
これまでのところ、次のようなことを試しました: NodeList inputNodeList = doc.getElementsByTagNameNS(namespaceURI, "sch:input");
しかし、int length = inputNodeList.getLength(); を実行すると
「長さ」の値を 0 として取得します。ここで、1 であると想定されています。
ありがとう!