xpath 表达式在逻辑应用中不起作用

Posted

技术标签:

【中文标题】xpath 表达式在逻辑应用中不起作用【英文标题】:xpath expression not working in Logic Apps 【发布时间】:2022-01-14 02:04:34 【问题描述】:

我有以下来自 SOAP 调用的 XML 响应

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soap:Body>
        <GetContractStatusesResponse xmlns="http://www.proactis.com/xml/xml-ns/">
            <GetContractStatusesResult>
                <Message>Successful</Message>
                <Code>1</Code>
                <InterfaceLanguage>de</InterfaceLanguage>
                <GetContractStatusesData xmlns="http://schemas.proactis.com/p4/contractmanagement/2013/02">
                    <ContractStatus code="DRFT" typeId="3581">Draft</ContractStatus>
                    <ContractStatus code="BAPR" typeId="3582">Being Approved</ContractStatus>
                    <ContractStatus code="RJCT" typeId="3583">Rejected</ContractStatus>
                    <ContractStatus code="CNCL" typeId="3584">Cancelled</ContractStatus>
                    <ContractStatus code="APPR" typeId="3585">Approved</ContractStatus>
                    <ContractStatus code="ACPE" typeId="3586">Activation Pending</ContractStatus>
                    <ContractStatus code="ACTV" typeId="3587">Active</ContractStatus>
                    <ContractStatus code="SUSP" typeId="3588">Suspended</ContractStatus>
                    <ContractStatus code="COMP" typeId="3589">Completed</ContractStatus>
                    <ContractStatus code="NOV" typeId="3783">Novated</ContractStatus>
                    <ContractStatus code="DEF" typeId="3853">In Defects Period</ContractStatus>
                </GetContractStatusesData>
            </GetContractStatusesResult>
        </GetContractStatusesResponse>
    </soap:Body>
</soap:Envelope>

我正在尝试创建一个 xpath 引用来检索 GetContractStatusesData 数组,这样我就可以遍历每个 ContractStatus 以使用该值以及相关的代码

我尝试了各种在线 xpath 生成器,但它们在导入逻辑应用程序时似乎无法正常工作,甚至尝试更简单的方法,例如获取消息值。

这些是我通过设置逻辑应用变量尝试过的那些

xpath(xml(variables('Payload')), '//ContractStatus[1]/@code')
xpath(xml(variables('Payload')), '//ContractStatus[1]/text()[1]')

我通常返回的结果是[]

【问题讨论】:

【参考方案1】:

我对 ALA 一无所知,只知道 xpath 表达式

//GetContractStatusesData//ContractStatus/text()

应该得到所有&lt;ContractStatus&gt;元素的文本值,

//GetContractStatusesData//ContractStatus/@code

应该给你code 值和

//GetContractStatusesData//ContractStatus/concat(.," ",@code)

应该得到你们两个。

You can try this here.

【讨论】:

好的,这些也不起作用,与 [] 的结果相同 @Frazer 那我不知道该说什么了;我希望有小提琴或在线试用逻辑应用程序的方法。【参考方案2】:

我已就此与 Microsoft 联系,解决方案是使用以下方法在 XML 到 JSON 上使用 Compose Action,这样 JSON 更易于使用。

json(xml(&lt;XML content&gt;))

【讨论】:

以上是关于xpath 表达式在逻辑应用中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Qt:showMaximized() 在 Windows 中不起作用

simpleXML 在 php 5.4 中不起作用

JavaScript 重定向在 Facebook 应用内浏览器中不起作用

库模块在我的项目应用程序模块android中不起作用

为啥 `\d` 在 sed 的正则表达式中不起作用? [复制]

为啥'&'运算符在 RcppArmadillo 中不起作用