XML
XML节点用于在XML格式和JavaScript对象之间进行转换。
输入
- payload (string|object): XML字符串或JavaScript对象
输出
- payload (object|string): 转换后的JavaScript对象或XML字符串
详细说明
XML节点可以将XML字符串解析为JavaScript对象,也可以将JavaScript对象转换为XML字符串。
配置选项
操作: 选择转换方向
- XML字符串 → JavaScript对象: 解析XML
- JavaScript对象 → XML字符串: 生成XML
- 自动检测: 根据输入类型自动选择
属性前缀: 设置XML属性在对象中的前缀(默认为"$")
文本属性名: 设置XML文本内容在对象中的属性名(默认为"_")
示例
XML转对象
javascript
// 输入消息
msg.payload = `<?xml version="1.0" encoding="UTF-8"?>
<person id="123">
<name>张三</name>
<age>25</age>
<address>
<city>北京</city>
<street>长安街</street>
</address>
</person>`;
// 输出消息
msg.payload = {
person: {
$id: "123",
name: "张三",
age: "25",
address: {
city: "北京",
street: "长安街"
}
}
};
对象转XML
javascript
// 输入消息
msg.payload = {
book: {
$isbn: "978-0123456789",
title: "Node-RED指南",
author: "作者姓名",
price: {
$currency: "CNY",
_: "99.00"
}
}
};
// 输出消息
msg.payload = `<?xml version="1.0" encoding="UTF-8"?>
<book isbn="978-0123456789">
<title>Node-RED指南</title>
<author>作者姓名</author>
<price currency="CNY">99.00</price>
</book>`;
处理数组
javascript
// 输入消息
msg.payload = `<students>
<student>
<name>张三</name>
<grade>85</grade>
</student>
<student>
<name>李四</name>
<grade>92</grade>
</student>
</students>`;
// 输出消息
msg.payload = {
students: {
student: [
{
name: "张三",
grade: "85"
},
{
name: "李四",
grade: "92"
}
]
}
};
应用场景
- API数据处理: 处理XML格式的API响应
- 配置文件解析: 读取XML配置文件
- 数据交换: 在不同系统间交换XML格式数据
- Web服务: 处理SOAP等XML格式的Web服务
注意事项
- 输入的XML必须格式正确
- 属性和文本内容的处理方式可以通过配置调整
- 数组元素会自动识别和处理
- 命名空间支持有限,复杂的XML可能需要额外处理
- 转换过程中可能丢失一些XML格式信息(如注释、处理指令等)