Как получить запись незашифрованного HTML в файл?
Я использую чтение в.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 в выходном файле.
Как я могу получить записать файл XML без кодирования HTML?
1 ответ
Используя npm install, вы можете декодировать HTML после генерации XML. Это действительно генерирует "недопустимый" 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!");
}
});
});