gpt4 book ai didi

javascript - 如何删除XML文件中的LF以接收一行xml文件?

转载 作者:太空宇宙 更新时间:2023-11-04 02:05:26 28 4
gpt4 key购买 nike

我有一个文件 theme.xml 不包含“LF”,请参阅 https://en.wikipedia.org/wiki/Newline 。但在转换为 js 并返回 xml 后,我的结果包含“LF”换行符。这是一个问题,因为adobe acrobat 8​​标准要求xml文件在一行中作为标题模板文件。听一个例子:

<?xml version = "1.0" encoding = "UTF-8" ?><HeaderFooterSettings version = "8.0"><Font name="Arial" size="11.0"/><Color b="0.0" r="0.0" g="0.0"/><Margin top="34.0159" left="72.0002" right="72.0002" bottom="36.0001"/><Appearance shrink="1" fixedprint="0"/><PageRange end="-1" start="-1" even="1" odd="1"/><Page offset = "0"><PageIndex format="1"/></Page><Date><Month format="1"/>/<Day format="1"/><Year format="0"/></Date><Header><Left>hello</Left><Center></Center><Right>world</Right></Header><Footer><Left></Left><Center></Center><Right></Right></Footer></HeaderFooterSettings>






var fs = require('fs');
var path = require('path');
var xml2js = require('xml2js');

xmlFileToJs('theme.xml', function (err, obj) {
if (err) throw (err);
jsToXmlFile('theme2.xml', obj, function (err) {
if (err) console.log(err);
})
});


function xmlFileToJs(filename, cb) {
var filepath = path.normalize(path.join(__dirname, filename));
fs.readFile(filepath, 'utf8', function (err, xmlStr) {
if (err) throw (err);
xml2js.parseString(xmlStr, {}, cb);
});
}

function jsToXmlFile(filename, obj, cb) {
var filepath = path.normalize(path.join(__dirname, filename));
var builder = new xml2js.Builder();
var xml = builder.buildObject(obj);
fs.writeFile(filepath, xml, cb);
}

不幸的是,linebrakers“LF”的结果

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<HeaderFooterSettings version="8.0">
<Font name="Arial" size="11.0"/>
<Color b="0.0" r="0.0" g="0.0"/>
<Margin top="34.0159" left="72.0002" right="72.0002" bottom="36.0001"/>
<Appearance shrink="1" fixedprint="0"/>
<PageRange end="-1" start="-1" even="1" odd="1"/>
<Page offset="0">
<PageIndex format="1"/>
</Page>
<Date>
/
<Month format="1"/>
<Day format="1"/>
<Year format="0"/>
</Date>
<Header>
<Left>hello</Left>
<Center/>
<Right>world</Right>
</Header>
<Footer>
<Left/>
<Center/>
<Right/>
</Footer>
</HeaderFooterSettings>

我尝试了很多。即时,但无法通过此命令找到解决方案:

const stringify = require('xml-stringify');
var xmlc = require('xml');
const trimNewlines = require('trim-newlines');
xmlc(trimNewlines(JSON.stringify(obj)));

我也尝试过这个:

var builder = new xml2js.Builder({'trim' : true, 'normalize' : true});

好吧,没有机会。

我期待其他想法。

最佳答案

现在您可以使用

const builder = new xml2js.Builder({ renderOpts: { pretty: false } });

关于javascript - 如何删除XML文件中的LF以接收一行xml文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44524728/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com