我有一个逻辑应用程序(LA),它有一个http触发器。我向LA发送一个类似于下面的SOAP请求:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"></SOAP-ENV:Header>
<SOAP-ENV:Body>
<tns:Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tns="http://test.com">
<name>AAAA</name>
<id>1234</id>
<OrderType>new</OrderType>
</tns:Order>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
字符串
我想在LA中创建另一个动作,将信封体提取给我。我只想得到这个:
<tns:Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tns="http://test.com">
<name>AAAA</name>
<id>1234</id>
<OrderType>new</OrderType>
</tns:Order>
型
我尝试了一个具有以下功能的合成操作:
xpath(triggerBody(), '/*[local-name()=''Envelope'']/*[local-name()=''Body'']/*[local-name=''Order'']')
型
你可以在这里看到:
的数据
但这对我来说是一个错误:
的
有什么办法解决这个问题吗?我已经尝试删除所有的名称空间,它似乎是工作,但不是当有名称空间
2条答案
按热度按时间z4iuyo4d1#
您的
null
问题有点令人困惑,我很难破译和修复,因为收到该错误告诉我您没有完全正确地阅读传入的请求(或其他内容),但是,如果我将XML加载到变量中,然后提取tns:Order
的内容,我可以让它工作,并且这种方法不需要您使用完全限定的方法遍历层次结构。流量
的数据
这是第二步中的表达式。。
first(xpath(xml(variables('XML')), '//*[local-name()="Order"]'))
个结果
的
3b6akqbq2#
我已经在我的环境中复制了,并得到了预期的结果如下:
一月一日
字符串
的数据
然后使用
outputs('Compose')['SOAP-ENV:Envelope']['SOAP-ENV:Body']['tns:Order']
:的
Output:
的
CodeView:
型
Edit:
如果你想以xml格式输出:
xml(outputs('Compose_2'))
个的
Output:
的
Codeview:
型