我正在获取具有以下结构的XML
<?xml version="1.0" encoding="UTF-8"?>
<Data>
<datym>
<bla bla>
</datym>
<datym>
<bla bla>
</datym>
</Data>
这可以成功解析为json并完成所有工作。有时我得到以下格式的空xml。
<?xml version="1.0" encoding="UTF-8"?>
<Data></data>
但是这无法使用逻辑应用程序解析为xml或json。那么,如果这是可解析的XML或空的XML,我该如何进行验证?我想到了在启动字符串后使用contains()函数,但这对性能造成了巨大影响。
感谢您的想法。
答案 0 :(得分:1)
我认为您的空xml示例可以解析。我试图将xml文件解析为json文件。这是我的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></DocumentInfo>
<Header></Header>
<Documents></Documents>
</Invoices>
解析后,这是json内容:
{
"Invoices": {
"@xmlns": "http://gateway.com/schemas/Invoices",
"@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
"@xsi:schemaLocation":
"http://gateway..com/schemas/InvoicesInvoices.xsd",
"DocumentInfo": "",
"Header": "",
"Documents": ""
}
}
所以也许您可以参考我的Logic App流程。我使用xml文件作为显示。
希望这对您有帮助,如果您还有其他问题,请告诉我。
答案 1 :(得分:0)
我实际上找到了解决方法。所以我想我会自己回答,以便将来其他人会觉得有用。
我的方法是使用XPATH。
只需检查第一个节点。如果返回空数组,则返回空数组,否则进行常规处理。
xpath(xml(base64ToString(variables('content'))),'//datym')
或
xpath(xml(base64ToString(variables('content'))),'//datym[1]')