我用CXF调用服务端后SOAP返回的XML格式如下:
<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>
      <GetCinemaListAllResult xmlns="http://vista.co.nz/services/WSVistaWebClient.DataTypes/1/">
         <Result>OK</Result>
         <DatasetXML><![CDATA[<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Cinema_strID" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strName" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strName_2" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strNameShort" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strNameShort_2" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strPrint_x0040_Home" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strP_x0040_H_EmailDisplayName" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strP_x0040_H_EmailFromAddress" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strP_x0040_H_EmailCopyAddress" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strPhoneCountryCode" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_intRemovePhoneLeadingDigits" type="xs:int" minOccurs="0" />
                <xs:element name="Cinema_strIsSofaEnabled" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strOrder" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strAllBookingsUnpaid" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strAllowUnpaidBk" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strDisplayName" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strDisplayNameAlt" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strAllowLoyalty" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strAllowOnlineVoucherValidation" type="xs:string" minOccurs="0" />
                <xs:element name="Cinema_strAllowOnlineVoucherRedemption" type="xs:string" minOccurs="0" />
                <xs:element name="CinOperator_strCode" type="xs:string" minOccurs="0" />
                <xs:element name="CinOperator_strName" type="xs:string" minOccurs="0" />
                <xs:element name="CinOperator_strHOOperatorCode" type="xs:string" minOccurs="0" />
                <xs:element name="CinOpStatic_strOrder" type="xs:int" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
 

解决方案 »

  1.   

     <Table>
        <Cinema_strID>1003</Cinema_strID>
        <Cinema_strName>ABC Arena Park</Cinema_strName>
        <Cinema_strName_2>** ABC Arena Park</Cinema_strName_2>
        <Cinema_strNameShort>Arena Park</Cinema_strNameShort>
        <Cinema_strNameShort_2>*ArenaPark</Cinema_strNameShort_2>
        <Cinema_strPrint_x0040_Home>Y</Cinema_strPrint_x0040_Home>
        <Cinema_strP_x0040_H_EmailDisplayName>Vista</Cinema_strP_x0040_H_EmailDisplayName>
        <Cinema_strP_x0040_H_EmailFromAddress>[email protected]</Cinema_strP_x0040_H_EmailFromAddress>
        <Cinema_strPhoneCountryCode>64</Cinema_strPhoneCountryCode>
        <Cinema_strIsSofaEnabled>Y</Cinema_strIsSofaEnabled>
        <Cinema_strAllBookingsUnpaid>N</Cinema_strAllBookingsUnpaid>
        <Cinema_strDisplayName>Gold Class Newton - ABC Arena Park</Cinema_strDisplayName>
        <Cinema_strDisplayNameAlt>Gold Class Newton - ** ABC Arena Park</Cinema_strDisplayNameAlt>
        <Cinema_strAllowLoyalty>Y</Cinema_strAllowLoyalty>
        <Cinema_strAllowOnlineVoucherValidation>Y</Cinema_strAllowOnlineVoucherValidation>
        <Cinema_strAllowOnlineVoucherRedemption>Y</Cinema_strAllowOnlineVoucherRedemption>
        <CinOperator_strCode>QSGC</CinOperator_strCode>
        <CinOperator_strName>Gold Class Newton</CinOperator_strName>
        <CinOperator_strHOOperatorCode>QSGC      </CinOperator_strHOOperatorCode>
      </Table>
      <Table>
        <Cinema_strID>1001</Cinema_strID>
        <Cinema_strName>ABC Newton</Cinema_strName>
        <Cinema_strName_2>** ABC Newton</Cinema_strName_2>
        <Cinema_strNameShort>Newton</Cinema_strNameShort>
        <Cinema_strNameShort_2>*Newton</Cinema_strNameShort_2>
        <Cinema_strPrint_x0040_Home>Y</Cinema_strPrint_x0040_Home>
        <Cinema_strP_x0040_H_EmailDisplayName>Vista</Cinema_strP_x0040_H_EmailDisplayName>
        <Cinema_strP_x0040_H_EmailFromAddress>[email protected]</Cinema_strP_x0040_H_EmailFromAddress>
        <Cinema_strPhoneCountryCode>64</Cinema_strPhoneCountryCode>
        <Cinema_strIsSofaEnabled>Y</Cinema_strIsSofaEnabled>
        <Cinema_strAllBookingsUnpaid>N</Cinema_strAllBookingsUnpaid>
        <Cinema_strDisplayName>Gold Class Newton - ABC Newton</Cinema_strDisplayName>
        <Cinema_strDisplayNameAlt>Gold Class Newton - ** ABC Newton</Cinema_strDisplayNameAlt>
        <Cinema_strAllowLoyalty>Y</Cinema_strAllowLoyalty>
        <Cinema_strAllowOnlineVoucherValidation>Y</Cinema_strAllowOnlineVoucherValidation>
        <Cinema_strAllowOnlineVoucherRedemption>Y</Cinema_strAllowOnlineVoucherRedemption>
        <CinOperator_strCode>QSGC</CinOperator_strCode>
        <CinOperator_strName>Gold Class Newton</CinOperator_strName>
        <CinOperator_strHOOperatorCode>QSGC      </CinOperator_strHOOperatorCode>
      </Table>
      <Table>
        <Cinema_strID>1004</Cinema_strID>
        <Cinema_strName>ABC Green City</Cinema_strName>
        <Cinema_strName_2>** ABC Green City</Cinema_strName_2>
        <Cinema_strNameShort>Green City</Cinema_strNameShort>
        <Cinema_strNameShort_2>*GreenCity</Cinema_strNameShort_2>
        <Cinema_strPrint_x0040_Home>Y</Cinema_strPrint_x0040_Home>
        <Cinema_strP_x0040_H_EmailDisplayName>Vista</Cinema_strP_x0040_H_EmailDisplayName>
        <Cinema_strP_x0040_H_EmailFromAddress>[email protected]</Cinema_strP_x0040_H_EmailFromAddress>
        <Cinema_strPhoneCountryCode>64</Cinema_strPhoneCountryCode>
        <Cinema_strIsSofaEnabled>Y</Cinema_strIsSofaEnabled>
        <Cinema_strAllBookingsUnpaid>N</Cinema_strAllBookingsUnpaid>
        <Cinema_strDisplayName>Hammersmith - ABC Green City</Cinema_strDisplayName>
        <Cinema_strDisplayNameAlt>Hammersmith - ** ABC Green City</Cinema_strDisplayNameAlt>
        <Cinema_strAllowLoyalty>Y</Cinema_strAllowLoyalty>
        <Cinema_strAllowOnlineVoucherValidation>Y</Cinema_strAllowOnlineVoucherValidation>
        <Cinema_strAllowOnlineVoucherRedemption>Y</Cinema_strAllowOnlineVoucherRedemption>
        <CinOperator_strCode>BW</CinOperator_strCode>
        <CinOperator_strName>Hammersmith</CinOperator_strName>
        <CinOperator_strHOOperatorCode>BW        </CinOperator_strHOOperatorCode>
      </Table>
     
      

  2.   

     <Table>
        <Cinema_strID>1002</Cinema_strID>
        <Cinema_strName>ABC Hammersmith</Cinema_strName>
        <Cinema_strName_2>** ABC Hammersmith</Cinema_strName_2>
        <Cinema_strNameShort>Hammer</Cinema_strNameShort>
        <Cinema_strNameShort_2>*Hammer</Cinema_strNameShort_2>
        <Cinema_strPrint_x0040_Home>Y</Cinema_strPrint_x0040_Home>
        <Cinema_strP_x0040_H_EmailDisplayName>Vista</Cinema_strP_x0040_H_EmailDisplayName>
        <Cinema_strP_x0040_H_EmailFromAddress>[email protected]</Cinema_strP_x0040_H_EmailFromAddress>
        <Cinema_strPhoneCountryCode>64</Cinema_strPhoneCountryCode>
        <Cinema_strIsSofaEnabled>Y</Cinema_strIsSofaEnabled>
        <Cinema_strAllBookingsUnpaid>N</Cinema_strAllBookingsUnpaid>
        <Cinema_strDisplayName>Hammersmith - ABC Hammersmith</Cinema_strDisplayName>
        <Cinema_strDisplayNameAlt>Hammersmith - ** ABC Hammersmith</Cinema_strDisplayNameAlt>
        <Cinema_strAllowLoyalty>Y</Cinema_strAllowLoyalty>
        <Cinema_strAllowOnlineVoucherValidation>Y</Cinema_strAllowOnlineVoucherValidation>
        <Cinema_strAllowOnlineVoucherRedemption>Y</Cinema_strAllowOnlineVoucherRedemption>
        <CinOperator_strCode>BW</CinOperator_strCode>
        <CinOperator_strName>Hammersmith</CinOperator_strName>
        <CinOperator_strHOOperatorCode>BW        </CinOperator_strHOOperatorCode>
      </Table>
      <Table>
        <Cinema_strID>1003</Cinema_strID>
        <Cinema_strName>ABC Arena Park</Cinema_strName>
        <Cinema_strName_2>** ABC Arena Park</Cinema_strName_2>
        <Cinema_strNameShort>Arena Park</Cinema_strNameShort>
        <Cinema_strNameShort_2>*ArenaPark</Cinema_strNameShort_2>
        <Cinema_strPrint_x0040_Home>Y</Cinema_strPrint_x0040_Home>
        <Cinema_strP_x0040_H_EmailDisplayName>Vista</Cinema_strP_x0040_H_EmailDisplayName>
        <Cinema_strP_x0040_H_EmailFromAddress>[email protected]</Cinema_strP_x0040_H_EmailFromAddress>
        <Cinema_strPhoneCountryCode>64</Cinema_strPhoneCountryCode>
        <Cinema_strIsSofaEnabled>Y</Cinema_strIsSofaEnabled>
        <Cinema_strAllBookingsUnpaid>N</Cinema_strAllBookingsUnpaid>
        <Cinema_strDisplayName>IMAX Newton - ABC Arena Park</Cinema_strDisplayName>
        <Cinema_strDisplayNameAlt>IMAX Newton - ** ABC Arena Park</Cinema_strDisplayNameAlt>
        <Cinema_strAllowLoyalty>Y</Cinema_strAllowLoyalty>
        <Cinema_strAllowOnlineVoucherValidation>Y</Cinema_strAllowOnlineVoucherValidation>
        <Cinema_strAllowOnlineVoucherRedemption>Y</Cinema_strAllowOnlineVoucherRedemption>
        <CinOperator_strCode>IMAX</CinOperator_strCode>
        <CinOperator_strName>IMAX Newton</CinOperator_strName>
        <CinOperator_strHOOperatorCode>HO00000011</CinOperator_strHOOperatorCode>
      </Table>
      <Table>
        <Cinema_strID>1001</Cinema_strID>
        <Cinema_strName>ABC Newton</Cinema_strName>
        <Cinema_strName_2>** ABC Newton</Cinema_strName_2>
        <Cinema_strNameShort>Newton</Cinema_strNameShort>
        <Cinema_strNameShort_2>*Newton</Cinema_strNameShort_2>
        <Cinema_strPrint_x0040_Home>Y</Cinema_strPrint_x0040_Home>
        <Cinema_strP_x0040_H_EmailDisplayName>Vista</Cinema_strP_x0040_H_EmailDisplayName>
        <Cinema_strP_x0040_H_EmailFromAddress>[email protected]</Cinema_strP_x0040_H_EmailFromAddress>
        <Cinema_strPhoneCountryCode>64</Cinema_strPhoneCountryCode>
        <Cinema_strIsSofaEnabled>Y</Cinema_strIsSofaEnabled>
        <Cinema_strAllBookingsUnpaid>N</Cinema_strAllBookingsUnpaid>
        <Cinema_strDisplayName>IMAX Newton - ABC Newton</Cinema_strDisplayName>
        <Cinema_strDisplayNameAlt>IMAX Newton - ** ABC Newton</Cinema_strDisplayNameAlt>
        <Cinema_strAllowLoyalty>Y</Cinema_strAllowLoyalty>
        <Cinema_strAllowOnlineVoucherValidation>Y</Cinema_strAllowOnlineVoucherValidation>
        <Cinema_strAllowOnlineVoucherRedemption>Y</Cinema_strAllowOnlineVoucherRedemption>
        <CinOperator_strCode>IMAX</CinOperator_strCode>
        <CinOperator_strName>IMAX Newton</CinOperator_strName>
        <CinOperator_strHOOperatorCode>HO00000011</CinOperator_strHOOperatorCode>
      </Table>
      <Table>
        <Cinema_strID>1003</Cinema_strID>
        <Cinema_strName>ABC Arena Park</Cinema_strName>
        <Cinema_strName_2>** ABC Arena Park</Cinema_strName_2>
        <Cinema_strNameShort>Arena Park</Cinema_strNameShort>
        <Cinema_strNameShort_2>*ArenaPark</Cinema_strNameShort_2>
        <Cinema_strPrint_x0040_Home>Y</Cinema_strPrint_x0040_Home>
        <Cinema_strP_x0040_H_EmailDisplayName>Vista</Cinema_strP_x0040_H_EmailDisplayName>
        <Cinema_strP_x0040_H_EmailFromAddress>[email protected]</Cinema_strP_x0040_H_EmailFromAddress>
        <Cinema_strPhoneCountryCode>64</Cinema_strPhoneCountryCode>
        <Cinema_strIsSofaEnabled>Y</Cinema_strIsSofaEnabled>
        <Cinema_strAllBookingsUnpaid>N</Cinema_strAllBookingsUnpaid>
        <Cinema_strDisplayName>Newton - ABC Arena Park</Cinema_strDisplayName>
        <Cinema_strDisplayNameAlt>Newton - ** ABC Arena Park</Cinema_strDisplayNameAlt>
        <Cinema_strAllowLoyalty>Y</Cinema_strAllowLoyalty>
        <Cinema_strAllowOnlineVoucherValidation>Y</Cinema_strAllowOnlineVoucherValidation>
        <Cinema_strAllowOnlineVoucherRedemption>Y</Cinema_strAllowOnlineVoucherRedemption>
        <CinOperator_strCode>VILL</CinOperator_strCode>
        <CinOperator_strName>Newton</CinOperator_strName>
        <CinOperator_strHOOperatorCode>QS        </CinOperator_strHOOperatorCode>
      </Table>
      <Table>
        <Cinema_strID>1001</Cinema_strID>
        <Cinema_strName>ABC Newton</Cinema_strName>
        <Cinema_strName_2>** ABC Newton</Cinema_strName_2>
        <Cinema_strNameShort>Newton</Cinema_strNameShort>
        <Cinema_strNameShort_2>*Newton</Cinema_strNameShort_2>
        <Cinema_strPrint_x0040_Home>Y</Cinema_strPrint_x0040_Home>
        <Cinema_strP_x0040_H_EmailDisplayName>Vista</Cinema_strP_x0040_H_EmailDisplayName>
        <Cinema_strP_x0040_H_EmailFromAddress>[email protected]</Cinema_strP_x0040_H_EmailFromAddress>
        <Cinema_strPhoneCountryCode>64</Cinema_strPhoneCountryCode>
        <Cinema_strIsSofaEnabled>Y</Cinema_strIsSofaEnabled>
        <Cinema_strAllBookingsUnpaid>N</Cinema_strAllBookingsUnpaid>
        <Cinema_strDisplayName>Newton - ABC Newton</Cinema_strDisplayName>
        <Cinema_strDisplayNameAlt>Newton - ** ABC Newton</Cinema_strDisplayNameAlt>
        <Cinema_strAllowLoyalty>Y</Cinema_strAllowLoyalty>
        <Cinema_strAllowOnlineVoucherValidation>Y</Cinema_strAllowOnlineVoucherValidation>
        <Cinema_strAllowOnlineVoucherRedemption>Y</Cinema_strAllowOnlineVoucherRedemption>
        <CinOperator_strCode>VILL</CinOperator_strCode>
        <CinOperator_strName>Newton</CinOperator_strName>
        <CinOperator_strHOOperatorCode>QS        </CinOperator_strHOOperatorCode>
      </Table>
    </NewDataSet>]]></DatasetXML>
          </GetCinemaListAllResult>
       </soap:Body>
    </soap:Envelope>请问我用什么高效的方法取得<Tbale>里的值呢?
      

  3.   

    直接用客户端解析程序就好了。直接得到list<Table>。循环list直接得到table的值
      

  4.   

    小弟我刚接触CXF。。能不能详细一点啊,谢了
      

  5.   

    soap返回的是xml,用sax,或者dom4j解析就好了。
    跟CXF无关。
      

  6.   

    CXF不是可以自动转换为Java对象吗?还需要你手动去转换?
      

  7.   

    你可以写个WebService客户端啊,可以直接返回对象,根本就不要解析什么xml