Как превратить плохо отформатированный HTML в XML-объект, который можно использовать с XPath в Power Automate?

1
8

У меня есть поток Power Automate, который я использую для приема писем и вывода информации в Sharepoint. Когда я преобразую тело письма, которое является HTML, в XML, а затем использую XPath для поиска информации, Power Automate выдает ошибку, сообщающую о том, что XML плохо отформатирован.

Ошибка: Действие 'Initialize_email_header' не выполнено: Невозможно обработать выражения языка шаблона во входных данных действия 'Initialize_email_header' в строке '0' и столбце '0': 'Параметр функции языка шаблона 'xml' недопустим. Предоставленное значение не может быть преобразовано в XML: 'Начальный тег 'meta' в строке 2, позиция 2 не соответствует конечному тегу 'head'. Строка 2, позиция 70.'. Подробности использования см. на странице https://aka.ms/logicexpressions#xml.'.

Функция, которую я использую: xpath(xml(triggerOutputs()?['body/body']), '//h2[contains(@id, "client_name")]')

Вот деидентифицированное начало HTML, которое она подавляет.

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

Я пробовал преобразовать тело в html-файл, а затем принять его, но Power Automate говорит, что это объект json с несколькими значениями и не может преобразовать его в XML.

Я также пытался выяснить, как удалить теги Meta из файла, но не понял, как удалить целые строки. Я думал, что, возможно, я мог бы использовать Regex для этого ('<Meta.*'), но я не могу найти документацию Power Automate, поддерживающую RegEX, только PowerApps.

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

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
            <title>Receipt 87612836123 from Redacted</title>
        </head>
        <body>



            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
            <html>
                <head>

                    <meta http-equiv="X-UA-Compatible" content="IE=edge">
                        <meta name="viewport" content="width=device-width, initial-scale=1">
                            <title>Transaction #87612836123</title>
                        </head>
Владимир
Вопрос задан3 мая 2024 г.

1 Ответ

2
Радим
Ответ получен1 сентября 2024 г.

Ваш ответ

Загрузить файл.