我使用从文件系统读取.HTML片段;它只包含<h1>Hulton Archive</h1>。然后,我正在编写一个新的XML文件,它必须包含某个元素中的HTML片段。使用XMLbuilder构建一个XML文件。我现在拥有的是:
var fs = require('fs');
var xml2js = require('xml2js');
var builder = new xml2js.Builder();
var parseString = require('xml2js').parseString;
var result;
var inputFile = "html-snippet.html";
var outputFile = "test.xml";
fs.readFile(inputFile, "UTF-8", function (err, data) {
if (err) {
return console.log(err);
}
console.log(data);
var obj = {name: "Super", Surname: "Man", age: data};
var outputXML = builder.buildObject(obj);
fs.writeFile(outputFile, outputXML, function(err) {
if(err) {
console.log(err);
} else {
console.log(outputFile + " was saved!");
}
});
});问题是,HTML标记是在输入文件中编码的;从<h1>header</h1>转换为<h1>header</h1>。我希望保留HTML标记,而不是在输出文件中编码它们。
我尝试使用XMLbuilder (https://github.com/oozcitak/xmlbuilder-js)和xml2js (https://github.com/Leonidas-from-XIV/node-xml2js)编写这个文件。看起来他们都在对输出文件上的HTML进行编码。
如何在不编码HTML的情况下写出XML文件?
发布于 2014-12-12 00:32:24
使用npm安装,您可以在生成XML之后解码HTML。然而,这确实会生成“无效”XML。对大多数人来说,CDATA可能是更好的选择。
var fs = require('fs');
var xml2js = require('xml2js');
var builder = new xml2js.Builder();
var parseString = require('xml2js').parseString;
var decode = require('ent').decode;
var result;
var inputFile = "html-snippet.html";
var outputFile = "test.xml";
fs.readFile(inputFile, "UTF-8", function (err, data) {
if (err) {
return console.log(err);
}
console.log(data);
var obj = {name: "Super", Surname: "Man", age: data};
var outputXML = decode(builder.buildObject(obj));
fs.writeFile(outputFile, outputXML, function(err) {
if(err) {
console.log(err);
} else {
console.log(outputFile + " was saved!");
}
});
});https://stackoverflow.com/questions/27407699
复制相似问题