Обработка ответа XML-мыла с помощью zapier NodeJS
У меня есть XML-ответ мыла в этом формате, в котором есть следующая информация Имя пользователя: Fulname: State: State Продолжительность:
<return>
<columns>
<values>
<data>Username</data>
<data>Full Name</data>
<data>State</data>
<data>State Duration</data>
</values>
</columns>
<rows>
<values>
<data>user1@test.com</data>
<data>User1</data>
<data>Logged Out</data>
<data>309</data>
</values>
</rows>
<rows>
<values>
<data>user2@test.com</data>
<data>User2</data>
<data>Logged In</data>
<data>165</data>
</values>
</rows>
<rows>
<values>
<data>user3@test.com</data>
<data>User3</data>
<data>Logged Out</data>
<data>109</data>
</values>
</rows>
</return>
Если я хочу получить общее количество пользователей, вышедших из системы, я использую свой код
var LoggedOutCt = inputData.tempInput.split("Logged Out").length;
output = [{LoggedOutCt: LoggedOutCt}]
Это дает мне вывод как LoggedOutCt: 2
Как я также могу получить имена пользователей, которые вышли из системы, например, LoggedOutCt: 2 Имена: User1, User 3
И сумма "State Duration" всех пользователей, которая составляет: 309 + 165 + 109
1 ответ
Дэвид здесь, из команды Zapier Platform.
Если вы работаете с XML так, как будто это простой текст, у вас будет плохое время. Я бы хотел найти способ разобрать XML в более дружественный формат и работать с ним как с обычной структурой данных. К сожалению, node.js не имеет встроенного парсера xml, поэтому у вас есть два варианта:
- Сделайте небольшое CLI-приложение ( docs), которое будет анализировать ваш XML, и вы сможете работать с ним, как json
- Используйте шаг кода Python, который имеет собственный синтаксический анализ XML. Вы можете следовать инструкциям здесь, чтобы перебрать ваш
./rows/values
и проверьте, если пользователь вышел из системы.
Надеюсь, это заставит вас двигаться в правильном направлении!