从Java中的SOAP消息获取值

从Java中的SOAP消息获取值,java,parsing,soap,Java,Parsing,Soap,在调用web服务之后,我得到了一条作为字符串的SOAP消息。 假设您使用的是JDOM: soap:Body实际上是两部分:名称空间和元素名。您将希望在检索该名称空间类时使用该名称空间类来包含该信息 试着做一些类似的事情: envelopeNode.getChild("Body",envelopeNode.getNamespace()); 这将使它查找名为“Body”的子元素,以及与信封节点相同的名称空间。谢谢Peter,它成功了。只有一件奇怪的事。当我为“PassOracleXMLDataR

在调用web服务之后,我得到了一条作为字符串的SOAP消息。


假设您使用的是JDOM:

soap:Body实际上是两部分:名称空间和元素名。您将希望在检索该名称空间类时使用该名称空间类来包含该信息

试着做一些类似的事情:

envelopeNode.getChild("Body",envelopeNode.getNamespace());

这将使它查找名为“Body”的子元素,以及与信封节点相同的名称空间。

谢谢Peter,它成功了。只有一件奇怪的事。当我为“PassOracleXMLDataResult”获取子元素时,它还需要提供一个名称空间作为第二个参数

                Namespace nmspc = Namespace.getNamespace("http://tempuri.org/");    
            Element parseResponse = bodyEm.getChild("PassOracleXMLDataResponse", nmspc);            
            Element passResult = parseResponse.getChild("PassOracleXMLDataResult", nmspc);   

谢谢你,彼得,成功了。只有一件奇怪的事。当我为“PassOracleXMLDataResult”获取子元素时,它还需要提供一个命名空间作为第二个参数。/n Namespace nmspc=Namespace.getNamespace(“);Element parseResponse=bodyEm.getChild(“PassOracleXMLDataResponse”,nmspc);Element passResult=parseResponse.getChild(“PassOracleXMLDataResult”,nmspc);对;我的示例只使用父元素的名称空间(在本例中为“”)。由于PassOracleXMLDataResponse位于不同的namspace(“),您需要将该名称空间传递给getChild()我想这是因为它需要包含名称空间的完整节点标识。
envelopeNode.getChild("Body",envelopeNode.getNamespace());
                Namespace nmspc = Namespace.getNamespace("http://tempuri.org/");    
            Element parseResponse = bodyEm.getChild("PassOracleXMLDataResponse", nmspc);            
            Element passResult = parseResponse.getChild("PassOracleXMLDataResult", nmspc);