如何在 alexa 技能 javascript 中解析 XML

how to parse XML in alexa skill javascript

我正在尝试解析由

类型的数据序列形成的 XML 字符串
<id>1233</id><status>on</status><name>name1</name><id>548</id><status>off</status><name>name2</name>....

这个字符串从 10 到 100 对象状态、ID 和名称,我想 return 一个像“1233 打开,548 关闭...”这样的字符串 但我不知道如何隔离标签。 希望你能帮帮我

您可以使用 fast-xml-parser 来解析任何 xml,这为您提供了很大的灵活性。

一旦我们解析为标准对象,就很容易循环并显示状态。

例如:

const xml = `<root>
    <object>
        <id>1233</id>
        <status>on</status>
        <name>name1</name>
    </object>
    <object>
        <id>548</id>
        <status>off</status>
        <name>name2</name>
    </object>
</root>`;

let options = {};
let parsedObjects = parser.parse(xml, options);

console.log("Status:");
parsedObjects.root.object.forEach(obj => console.log(`${obj.id} (${obj.name}) is ${obj.status}`));

console.log("\nParsed objects:", parsedObjects);
<script src="https://cdnjs.cloudflare.com/ajax/libs/fast-xml-parser/3.16.0/parser.js"></script>

您可能有兴趣尝试 txml。它是一个非常小的 xml 解析器,旨在 运行 无处不在。代码非常干净而且速度非常快:https://www.npmjs.com/package/txml