【问题标题】:Parsing XML in Groovy在 Groovy 中解析 XML
【发布时间】:2014-08-23 20:13:11
【问题描述】:

我已通读文档,但无法使其正常工作。我要做的是解析这个 XML 字符串

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <soapenv:Fault>
            <faultcode>soapenv:Server</faultcode>
            <faultstring>TriggeredMessageFault</faultstring>
            <detail>
                <TriggeredMessageFault xmlns="urn:fault.domain.com">
                    <exceptionCode>INVALID_PARAMETER</exceptionCode>
                    <exceptionMessage>Invalid campaign object</exceptionMessage>
                </TriggeredMessageFault>
            </detail>
        </soapenv:Fault>
    </soapenv:Body>
</soapenv:Envelope>

我要做的是访问exceptionCodeexceptionMessage 并将它们存储在两个不同的变量中。

【问题讨论】:

    标签: xml groovy xml-parsing


    【解决方案1】:

    其实我终于想通了

    def xmlstring = """<?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <soapenv:Body>
            <soapenv:Fault>
                <faultcode>soapenv:Server</faultcode>
                <faultstring>TriggeredMessageFault</faultstring>
                <detail>
                    <TriggeredMessageFault xmlns="urn:fault.domain.com">
                        <exceptionCode>INVALID_PARAMETER</exceptionCode>
                        <exceptionMessage>Invalid campaign object</exceptionMessage>
                    </TriggeredMessageFault>
                </detail>
            </soapenv:Fault>
        </soapenv:Body>
    </soapenv:Envelope>"""
    
    def soap_ns = new groovy.xml.Namespace("http://schemas.xmlsoap.org/soap/envelope/",'soapenv')
    def root = new XmlParser().parseText(xmlstring)
    println root[soap_ns.Body][soap_ns.Fault].detail.TriggeredMessageFault.exceptionMessage.text()
    

    我的问题是双重的。我不知道加载后它从 Envelope 开始,我不知道如何处理命名空间。

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 2022-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      相关资源
      最近更新 更多