0

我有一个非常大的 xml 文件,我是通过从计数中导出所有数据获得的,我正在尝试使用 web 抓取来使用cheerio 从我的代码中获取元素,但是我在格式化或类似的东西上遇到了问题。使用 fs.readFileSync() 读取它可以正常工作,并且 console.log 显示完整的 xml 文件,但是当我使用 fs.writeFileSync 写入文件时,它看起来像这样: 输出图像

我的网页抓取代码输出空文件:

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



var xml = fs.readFileSync('Master.xml','utf8');

             const htmlC = cheerio.load(xml);
                     var list = [];
             list = htmlC('ENVELOPE').find('BODY>TALLYMESSAGE>STOCKITEM>LANGUAGENAME.LIST>NAME.LIST>NAME').each(function (index, element) {
                list.push(htmlC(element).attr('data-prefix'));
             })
             console.log(list)
             fs.writeFileSync("data.html",list,()=>{})
4

1 回答 1

0

您可以尝试检查以确保 Cheerio 没有解码所有 HTML 实体。改变:

const htmlC = cheerio.load(xml);

至:

const htmlC = cheerio.load(xml, { decodeEntities: false });
于 2020-06-29T18:26:03.660 回答