跳到主要内容

数据格式化-XML处理

XML 字符串 和 XML 对象 之间互相转换

问题背景

XML 字符串 和 XML 对象 之间互相转换

解决方案

使用 XML 处理 节点进行 XML 字符串 和 XML 对象 之间的转换

示例

xml-format

示例JSON

[{"id":"1b546d47.9474e3","type":"inject","z":"869ba73b7f3d989b","name":"XML String","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"a\":1}","payloadType":"str","x":300,"y":660,"wires":[["d72b2bfd.77d068"]]},{"id":"1adf407d.6c4fe","type":"debug","z":"869ba73b7f3d989b","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":790,"y":660,"wires":[]},{"id":"46638890.8ae758","type":"inject","z":"869ba73b7f3d989b","name":"Object","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"note\":{\"$\":{\"priority\":\"high\"},\"to\":[\"Nick\"],\"from\":[\"Dave\"],\"heading\":[\"Reminder\"],\"body\":[\"Update the website\"]}}","payloadType":"json","x":290,"y":800,"wires":[["dae1d291.de0d2"]]},{"id":"6fefca67.3669e4","type":"debug","z":"869ba73b7f3d989b","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":630,"y":800,"wires":[]},{"id":"d72b2bfd.77d068","type":"template","z":"869ba73b7f3d989b","name":"XML 模板","field":"payload","fieldType":"msg","format":"text","syntax":"plain","template":"<note priority=\"high\">\n  <to>Nick</to>\n  <from>Dave</from>\n  <heading>Reminder</heading>\n  <body>Update the website</body>\n</note>","output":"str","x":490,"y":660,"wires":[["1746464a.87aa4a"]]},{"id":"1746464a.87aa4a","type":"xml","z":"869ba73b7f3d989b","name":"","property":"payload","attr":"","chr":"","x":630,"y":660,"wires":[["1adf407d.6c4fe"]]},{"id":"dae1d291.de0d2","type":"xml","z":"869ba73b7f3d989b","name":"","property":"payload","attr":"","chr":"","x":450,"y":800,"wires":[["6fefca67.3669e4"]]},{"id":"893fbe55242f9c36","type":"comment","z":"869ba73b7f3d989b","name":"XML  转 JSON 对象","info":"","x":350,"y":600,"wires":[]},{"id":"a353c885b1b81163","type":"comment","z":"869ba73b7f3d989b","name":"XML JSON 对象转 XML 字符串","info":"","x":350,"y":760,"wires":[]}]

运行结果

在示例中,第一个流程注入以下 XML 数据:

<note priority="high">
<to>Nick</to>
<from>Dave</from>
<heading>Reminder</heading>
<body>Update the website</body>
</note>

然后,XML 节点将其转换为等效的 JavaScript 对象:

{
"note": {
"$": {
"priority":"high"
},
"to": ["Nick"],
"from": ["Dave"],
"heading": ["Reminder"],
"body": ["Update the website"]
}
}

xml-format-result