由于B2B供应商的HTTP GET功能,具有以下XML。
<Invoices xmlns="http://gateway.com/schemas/Invoices" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://gateway..com/schemas/Invoices Invoices.xsd">
<DocumentInfo>
<DocType>INVOICES</DocType>
<DocVersion>2.0</DocVersion>
</DocumentInfo>
<Header>
<StartDate>2018-12-01T00:00:00+01:00</StartDate>
<EndDate>2019-01-03T00:00:00+01:00</EndDate>
</Header>
<Documents>
<Invoice InvoiceId="RP82807" InvoiceDate="2019-01-02T00:00:00+01:00" DocumentType="IN" RefDocId="FT34532" RefDocType="ORDER" SystemId="10" HasPDFImage="0" />
<Invoice InvoiceId="T609881" InvoiceDate="2018-12-31T00:00:00+01:00" DocumentType="IN" RefDocId="FT39339" RefDocType="ORDER" SystemId="0" HasPDFImage="0" />
</Documents>
</Invoices>
基于this article,我创建了液体地图文件以获取InvoiceIds列表:
{
"Invoice": "{{content.Documents.Invoice}}"
}
在XML-> Json转换器的LogicApp中使用它时,得到以下结果:
{
"Invoice": ""
}
我也尝试过将其作为临时文件:
{
"Invoice": "{{content.Invoices.Documents}}"
}
这:
{
"Invoice": "{{content.Invoices.Documents.Invoice}}"
}
具有相同的结果。 你能给我一个小提示我做错了什么吗?
答案 0 :(得分:0)
我尝试使用此地图将您的xml文件的一部分传输到json:
{
"DocType":"{{content.DocumentInfo.DocType}}",
"Invoice":"{{content.Documents.Invoice}}"
}
并获得输出:
{
"DocType": "INVOICES",
"Invoice": ""
}
所以这意味着我可以获取 DocType ,但不能获取发票属性,因此我认为Liquid映射不支持XML格式。也许您可以将其更改为这样:
<Invoice>
<InvoiceId>T609881</InvoiceId>
<InvoiceDate>2018-12-31T00:00:00+01:00</InvoiceDate>
<DocumentType>IN</DocumentType>
<RefDocId>FT39339</RefDocId>
</Invoice>
这将起作用,或者您可以转到Liquid reference检查是否有任何方法可以匹配属性。
注意:暂时不支持绑定到Xml属性。您可以参考此answer。
如果您还有其他问题,请告诉我。
更新:您仍然可以使用逻辑应用。例如,我使用FTP连接器获取xml文件内容,然后使用“ json(xml(body('Get_file_content')) )”表达式。