Nodejs:用了一周Node.JS了,遇到个问题,Node.JS怎样读写XML?E文不好,google都查不到

Nodejs:用了一周Node.JS了,遇到个问题,Node.JS怎样读写XML?E文不好,google都查不到

如题

9 回复

当然可以。对于刚刚开始使用 Node.js 的开发者来说,处理 XML 文件可能是一个挑战,尤其是在英文资料查找方面存在困难的情况下。下面我会详细解释如何在 Node.js 中读取和写入 XML 文件,并提供一些简单的示例代码。

如何在 Node.js 中读取 XML

在 Node.js 中读取 XML 文件通常需要借助第三方库,比如 xml2js。首先你需要安装这个库:

npm install xml2js

然后你可以使用以下代码来读取 XML 文件并将其解析为 JavaScript 对象:

const fs = require('fs');
const xml2js = require('xml2js');

// 读取文件
fs.readFile('./example.xml', 'utf8', (err, data) => {
    if (err) {
        console.error(err);
        return;
    }

    // 解析 XML 文件
    xml2js.parseString(data, (err, result) => {
        if (err) {
            console.error(err);
            return;
        }
        
        console.log(result);
        // 输出解析后的对象
    });
});

这段代码首先读取一个名为 example.xml 的文件,然后使用 xml2js.parseString() 方法将文件内容解析成 JavaScript 对象。

如何在 Node.js 中写入 XML

同样地,你也可以使用 xml2js 库来创建或修改 XML 文件。以下是一个简单的示例:

const fs = require('fs');
const xml2js = require('xml2js');

// 创建一个 JavaScript 对象
const data = {
    root: {
        item: [
            { name: "Item1", value: "Value1" },
            { name: "Item2", value: "Value2" }
        ]
    }
};

// 将 JavaScript 对象转换为 XML 字符串
const builder = new xml2js.Builder();
const xml = builder.buildObject(data);

// 将 XML 字符串写入文件
fs.writeFile('./output.xml', xml, err => {
    if (err) {
        console.error(err);
    } else {
        console.log("XML 文件已成功写入!");
    }
});

这段代码首先定义了一个 JavaScript 对象 data,然后使用 xml2js.Builder() 创建一个构建器对象,并调用 buildObject() 方法将 JavaScript 对象转换为 XML 字符串。最后,使用 fs.writeFile() 方法将生成的 XML 字符串写入到 output.xml 文件中。

希望这些信息能帮助你更好地理解和使用 Node.js 处理 XML 文件!


https://github.com/robrighter/node-xml

node-xml is an xml parser for node.js written in javascript.

英文再不好,你总是会搜 “NodeJS XML” 这组关键词吧?

补充一下,英文不好,搜上面的关键词后,点google左边的“所有中文结果”,嗖的一声,一大堆中文奇迹般的出现了。

npm 上面的 package 不是也全英文的… 迟早要 npm install

呵呵,谢谢,我找到了一个xmldom,先看看好不好用

在浏览器里敲nodejs xml。。找到了这个帖子,哈哈

能否教一下这个的使用方法,解析是对了,但是解析完了它告诉你一堆的解析信息,我要的的内容却一点都没有。

当然可以!在 Node.js 中读写 XML 文件可以通过一些库来实现。常用的库包括 xml2jsfast-xml-parser。下面是使用这两个库的简单示例。

示例 1: 使用 xml2js

首先需要安装 xml2js 库:

npm install xml2js

读取 XML

const fs = require('fs');
const xml2js = require('xml2js');

// 读取文件内容
fs.readFile('./example.xml', 'utf-8', (err, data) => {
    if (err) throw err;

    // 解析 XML 数据
    xml2js.parseString(data, (err, result) => {
        if (err) throw err;
        console.log(result);
    });
});

写入 XML

const builder = new xml2js.Builder();

const xmlData = {
    root: {
        child: [
            { name: "John", age: "30" },
            { name: "Jane", age: "25" }
        ]
    }
};

const xmlString = builder.buildObject(xmlData);

fs.writeFile('./output.xml', xmlString, (err) => {
    if (err) throw err;
    console.log("XML file written successfully");
});

示例 2: 使用 fast-xml-parser

首先需要安装 fast-xml-parser 库:

npm install fast-xml-parser

读取 XML

const fs = require('fs');
const parser = require('fast-xml-parser');

const xmlData = fs.readFileSync('./example.xml', 'utf-8');

const jsonObj = parser.parse(xmlData);

console.log(jsonObj);

写入 XML

const parser = require('fast-xml-parser');
const builder = require('fast-xml-parser').j2xParser;

const jsonData = {
    root: {
        child: [
            { name: "John", age: "30" },
            { name: "Jane", age: "25" }
        ]
    }
};

const xmlOptions = {
    format: true
};

const xmlBuilder = new builder(xmlOptions);
const xmlString = xmlBuilder.parse(jsonData);

fs.writeFileSync('./output.xml', xmlString);
console.log("XML file written successfully");

总结

以上是两种常用的处理 XML 的方法。你可以根据你的需求选择适合的库。希望这些示例代码能帮助你解决读写 XML 的问题!

回到顶部