Node.js Nodejs:解析XML,编辑值,使用sax-js模块保存最终结果
我想要实现的是:Node.js Nodejs:解析XML,编辑值,使用sax-js模块保存最终结果,node.js,xml-parsing,saxparser,Node.js,Xml Parsing,Saxparser,我想要实现的是: 解析XML块 编辑某些值 将最终结果保存在 新xml文件 该模块是sax js: 该模块具有一些内置机制来读取/写入任何数据 我认为这项任务是小菜一碟;相反,我一整天都在与它斗争 这是我的密码: var fs = require('fs'); var saxStream = require("sax").createStream(true); saxStream.on("text", function (node) { if (node === 'foo') {
- 解析XML块
- 编辑某些值
- 将最终结果保存在 新xml文件
var fs = require('fs');
var saxStream = require("sax").createStream(true);
saxStream.on("text", function (node) {
if (node === 'foo') { //the content I want to update
node = 'blabla';
}
});
fs.createReadStream("mysongs.xml")
.pipe(saxStream)
.pipe(fs.createWriteStream("mysongs-copy.xml"));
我确实认为更新一些内容(见上面的评论)就足以将更新后的流写入一个新文件
这个代码怎么了
谢谢你的帮助
罗兰模块不允许您这样修改节点。如果您查看一下,就会发现输入被不加区别地传递到输出
然而,所有的希望都没有失去!看看-这将是一个很好的起点,你想做什么。但是,如果您仍然想从流中提取
.pipe()
,则必须做一些工作来实现流的可读部分。根据Deoxa的回答,我为此编写了一个NPM模块如果您知道XML的一般结构,可以尝试XML流。它将XML流转换为对象,但有一个实用程序将其转换回XML字符串: