Невозможно проанализировать XML с нулевым содержимым в приложениях логики Azure - PullRequest
0 голосов
/ 11 января 2019

Я получаю 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 () после запуска строки, но это огромный удар по производительности.

Спасибо за ваши идеи.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Я действительно нахожу способ обойти это. Поэтому я подумал, что отвечу на свой вопрос, чтобы будущие другие сочли это полезным.

Мой метод использует XPATH.

Просто проверьте первый узел. Если он возвращает пустой массив, то его пустой в противном случае идет с обычной обработкой.

xpath(xml(base64ToString(variables('content'))),'//datym')

или

xpath(xml(base64ToString(variables('content'))),'//datym[1]')
0 голосов
/ 11 января 2019

Я думал, что твой пустой пример 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": ""
  }
}

Так что, возможно, вы могли бы обратиться к моему потоку приложений логики. Я использовал XML-файл в качестве дисплея.

enter image description here

Надеюсь, это может помочь вам, если у вас все еще есть вопросы, пожалуйста, дайте мне знать.

...