Skip to content

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格式信息(如注释、处理指令等)

蜀ICP备2025139593号