0
に存在するカスタムXSD名前空間を読み取ることができません私は、Javaコードの下の部分を使用してSOAP XMLリクエスト&レスポンスの要素ノードを読み込むしようとしています:SOAPリクエスト&レスポンス
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new ByteArrayInputStream(xml.getBytes()));
NodeList nodeList = document.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
System.out.println("Node Name: " + node.getNodeName() + ", Node Text: " + node.getNodeValue());
}
}
みましょうと言いますSOAPのXMLリクエストは以下の通りである:上記のSOAP XMLリクエストで
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:TestRequest xmlns:ns1="urn:wu:eh:dis:test:xsd:TestRequest-v1.0.0" xmlns:ns2="urn:wu:eh:dis:test:xsd:TestRequest" xmlns:ns3="urn:wu:eh:dis:test:xsd:TestSystem" xmlns:xyz1="urn:wu:eh:dis:test:xsd:TestSystem">
<ns2:TestRequest>
<ns3:TestSystem>
<ns3:UserName>test</ns3:UserName>
<ns3:Password>test</ns3:Password>
</ns3:TestSystem>
</ns2:TestRequest>
<xyz1:TestRequest>
<xyz1:TestSystem>
<xyz1:UserName>test</xyz1:UserName>
<xyz1:Password>test</xyz1:Password>
</xyz1:TestSystem>
</xyz1:TestRequest>
</ns1:TestRequest>
</soap:Body>
</soap:Envelope>
、私は名前空間のXYZ1とTestSystemスキーマが読めないのに対し、名前空間NS2でTestSystemスキーマの要素ノードを読み取ることができています。誰も私にJavaコードの修正/問題を助けてくれますか?
申し訳ありませんが間違った終了タグが含まれています。サンプルSOAP XMLリクエストを更新しました。 – user2346047
ノードの内容を読み込むためにnode.getTextContent()を使用しなければならなかったが、ns2とxyz1の両方に対して提供した修正済みSOAP XMLから読み込むことができました。 – amishra