使用Zapier NodeJS处理XML Soap响应

时间:2018-07-09 15:26:11

标签: node.js xml soap zapier

我有这种格式的XML Soap Response,其中包含以下信息 用户名: 姓氏: 州: 州持续时间:

        <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

以及所有用户的“状态持续时间”之和 等于:309 + 165 + 109

1 个答案:

答案 0 :(得分:0)

Zapier Platform团队的David在这里。

如果您像对待纯文本一样使用XML,那么您将会遇到麻烦。我想寻找一种将XML解析为更友好的格式,并像常规数据结构一样对其进行处理的方法。不幸的是,node.js没有本地XML解析器,因此您有两个选择:

  1. 制作一个小的CLI应用程序(docs)来解析您的XML,您可以像json一样使用它
  2. 使用python代码步骤,确实具有原生XML解析功能。您可以按照说明here遍历./rows/values并检查用户是否注销。

希望这能使您朝正确的方向前进!