如何通过ksoap2在一个响应中解析一个或多个复杂对象列表

时间:2012-02-29 06:55:15

标签: android wsdl ksoap2

服务器给了我一个复杂的xml响应。它有三个复杂的对象列表。但与其他复杂的对象列表不同,它没有标准定义。 这是wsdl定义:

<xs:complexType name="SinseiDataForMobile">
  <xs:sequence>
  <xs:element name="originalHeader" type="HeaderData" minOccurs="0" maxOccurs="1" /> 
  <xs:element name="dispHeader" type="HeaderDataForMobile" maxOccurs="unbounded" /> 
  <xs:element name="dispBody" type="BodyDataForMobile" maxOccurs="unbounded" /> 
  <xs:element name="dispHyo" type="HelloDataForMobile" maxOccurs="unbounded" /> 
  </xs:sequence>
  </xs:complexType>

和响应xml:

<ns2:sinseiData>
        <ns2:originalHeader>
           <ns2:syoruiCode>test002</ns2:syoruiCode>
           <ns2:syoruiName>test002</ns2:syoruiName>
           <ns2:syoruiHan>1</ns2:syoruiHan>
        </ns2:originalHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_HKD</ns2:key>
           <ns2:value>2012</ns2:value>
        </ns2:dispHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_KBN_KINKYU</ns2:key>
           <ns2:value>ss</ns2:value>
        </ns2:dispHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_SRI_CODE</ns2:key>
           <ns2:value>test002</ns2:value>
        </ns2:dispHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_SRI_NAME</ns2:key>
           <ns2:value>test002</ns2:value>
        </ns2:dispHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_HKU_NO</ns2:key>
           <ns2:value>a002</ns2:value>
        </ns2:dispHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_HKU_NAME</ns2:key>
           <ns2:value>asdf ad</ns2:value>
        </ns2:dispHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_HKU_SID</ns2:key>
           <ns2:value>test001</ns2:value>
        </ns2:dispHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_HKU_SNAME</ns2:key>
           <ns2:value>test001</ns2:value>
        </ns2:dispHeader>
        <ns2:dispHeader>
           <ns2:key>SHD_ATN</ns2:key>
           <ns2:value/>
        </ns2:dispHeader>
        <ns2:dispBody>
           <ns2:koumokuSyubetu>1</ns2:koumokuSyubetu>
           <ns2:value>0022</ns2:value>
        </ns2:dispBody>
        <ns2:dispHyo>
           <ns2:hyoNo>1</ns2:hyoNo>
           <ns2:hyoName>table1</ns2:hyoName>
        </ns2:dispHyo>
        <ns2:dispHyo>
           <ns2:hyoNo>2</ns2:hyoNo>
           <ns2:hyoName>table2</ns2:hyoName>
        </ns2:dispHyo>
     </ns2:sinseiData>

我如何处理这三个不确定长度列表。 soapEnvelope映射在这里不起作用。 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

请参阅此博客,了解ksoap Getting Started with KSOAP on Android

希望它会有所帮助。