【问题标题】:Parsing XML with Kotlin?用 Kotlin 解析 XML?
【发布时间】:2020-07-01 23:48:29
【问题描述】:

我从fedex webservices 得到这个xml 响应,看起来像:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <TrackReply xmlns="http://fedex.com/ws/track/v18">
            <HighestSeverity>SUCCESS</HighestSeverity>
            <CompletedTrackDetails>
                <Notifications>
                    <Severity>SUCCESS</Severity>
                    <Source>trck</Source>
                    <Code>0</Code>
                    <Message>Request was successfully processed.</Message>
                    <LocalizedMessage>Request was successfully processed.</LocalizedMessage>
                </Notifications>
                <DuplicateWaybill>false</DuplicateWaybill>
                <MoreData>false</MoreData>
                <TrackDetailsCount>0</TrackDetailsCount>
                <TrackDetails>
                    *<StatusDetail>
                        <CreationTime>2020-06-24T00:00:00</CreationTime>
                        **<Code>DL</Code>**
                        <Description>Delivered</Description>
                        <Location>
                            <City>New York</City>
                            <StateOrProvinceCode>New York</StateOrProvinceCode>
                            <CountryCode>US</CountryCode>
                            <CountryName>United States</CountryName>
                            <Residential>false</Residential>
                        </Location>
                    </StatusDetail>*
                    <CarrierCode>FDXE</CarrierCode>
                </TrackDetails>
            </CompletedTrackDetails>
        </TrackReply>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我想存储 StatusDetail 中的信息并对其进行处理,特别是 Code 中存储的信息 -> DL

任何帮助将不胜感激。

【问题讨论】:

    标签: xml kotlin xml-parsing wsdl fedex


    【解决方案1】:

    首先,下载他们的 WSDL:

    1. 登录FedEx Developer Resource Center
    2. 在页面的导航区域中,单击链接“FedEx Web Services”。
    3. 点击“文档和下载”链接。
    4. 找到您感兴趣的功能。
    5. 单击相应服务的下载箭头旁边显示“下载 WSDL 或 XSD”的 WSDL 或 XSD 链接。

    注意:您可以下载 WSDL 或 XML 格式的模式,具体取决于您选择的链接。此外,每个服务都有自己的 WSDL 指南,其中包含有关该特定服务的更多详细信息,然后是开发人员指南。将这两个指南用作最佳实践。

    然后,熟悉Apache CXF。您可以使用CXF's wsdl2java 工具从您下载的WSDL 生成Java 代码。如果你使用 Maven,他们也有一个cxf-codegen-plugin,基本上是一样的。 Gradle 没有,但是 it's easy 来实现一个基于 CXF 类的 wsdl2java 任务。

    无论如何,将生成的 Java 类编译成一个库(它真的不会经常更改)并在您的 Kotlin 项目中使用它们!

    这样,您实际上不需要解析 XML,因为生成的 Java 客户端将为您完成所有工作,您将直接使用 JavaBeans / POJO。

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 2021-02-15
      • 2019-09-26
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      相关资源
      最近更新 更多