2013-01-20 42 views
0

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

响应

<?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); 
} 
+0

你是什么意思“我无法迭代响应”。你有什么错误吗?你看到任何意外的行为?它是什么? – Swapnil

+0

我没有收到任何错误,也没有输出在屏幕上打印。 – user1793215

回答

1

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

+0

感谢您的更新我已经完成了使用childnodes的迭代。 – user1793215