java中的肥皂响应iterat

时间:2013-01-20 14:48:50

标签: java soap soap-client

我在我的代码中使用java soap请求和响应。我正在收到请求和回复。 但我无法迭代响应 请参阅我的回复和用于迭代的代码。请帮我解决这个问题。

响应

<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <GetUserResponse xmlns="http://XXXX.com/XXXXXXXX.XXXXXXX.WS">
      <GetUserResult>
        user
          <PersonID>111113</PersonID>
          <Username>0987654321</Username>
          <Password />         
          <FwyMember>Y</FwyMember>
          <WebMember>Y</WebMember>
          <FirstName>Mohamed</FirstName>
          <Tier>firstclass</Tier>
          <CountryOfResidence>IN</CountryOfResidence>
          <PreferencesChanged>false</PreferencesChanged>       
          <FamilyRelationship />
          <Title>Mr</Title>
          <MiddleName />
          ........ continue like this

Java代码

SOAPBody responseBody = response.getSOAPBody();
QName bodyName1 = new QName("http://XXXX.com/XXXXXXXX.XXXXXXX.WS","GetUserResponse");
java.util.Iterator iterator = responseBody.getChildElements(bodyName1);
while (iterator.hasNext()) {
  SOAPBodyElement responseElement = (SOAPBodyElement)iterator.next();
  String val = responseElement.getValue();
  System.out.println("The values are "+val);
}

1 个答案:

答案 0 :(得分:1)

GetUserResponse下面只有一个Body元素。 getChildElements只获取子元素,而不是后代元素。您必须先到达GetUserResponse,然后重复 子项。