0

これは私が欲しいものです:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tps="http://mysite.it">
   <soapenv:Header/>
   <soapenv:Body>
      <tps:getBook>
         <tps:id>45</tps:id>
      </tps:Retrieve_getBook_Poi_Recordset>
   </soapenv:Body>
</soapenv:Envelope>

しかし、これは私が持っているものです:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tps="http://mysite.it">
   <soapenv:Header/>
   <soapenv:Body>
      <tps:getBook xmlns:tps="http://mysite.it">
         <tps:id xmlns:tps="http://mysite.it">45</tps:id>
      </tps:Retrieve_getBook_Poi_Recordset>
   </soapenv:Body>
</soapenv:Envelope>

javax.xml.soap.* を使用して SOAP メッセージを作成しています ... param タグにプレフィックスのみを挿入する方法が見つかりません。

これは、soap メッセージを生成するコードです。

MessageFactory msgFactory = null;
SOAPMessage message = null;
msgFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
message = msgFactory.createMessage();
SOAPEnvelope messageEnvelope = message.getSOAPPart().getEnvelope();
SOAPBody messageBody = messageEnvelope.getBody();

messageEnvelope.addNamespaceDeclaration(PREFIX, getNameSpace(method));

SOAPElement soapMethod = messageBody.addChildElement(method, PREFIX);
SOAPElement param = soapMethod.addChildElement("id",PREFIX);
param.addTextNode("45");

名前空間のみを削除するにはどうすればよいですか?

4

1 に答える 1

1

要素ノードと属性ノードの場合:

Node node = ...;
String name = node.getLocalName();

ノード名のローカル部分が表示されます。

あなたが言及したように、XML から名前空間情報を取り除きたくありません。これは特定のケースに対する適切な回避策ですが、名前空間情報はそのまま残します。

于 2013-06-21T19:59:37.767 に答える