Как удалить LF в XML-файлах для получения однострочного XML-файла?

1

У меня есть файл theme.xml, который не содержит "LF", см. Https://en.wikipedia.org/wiki/Newline. Но после преобразования в js и возврата в xml мой результат содержит прерыватель линии LF. Это проблема, потому что для adobe acrobat 8 standard требуется файл 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);
}

и результаты неудачно с линейными маркерами "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});

хорошо нет шанс.

Я с нетерпением жду других идей.

Теги:
newline
lf

1 ответ

0
function onelinexml (xml) {

        var pos = xml.search(" <");
        var xmlstr = xml.replace(/\n|  |   /g, ""); 
        console.log('pos=%d',pos);
        while (pos>=0){

        var xmlstr = xmlstr.replace(/\n|  |   /g, "");  
        var xmlstr = xmlstr.replace(/> /g, ">");
        var xmlstr = xmlstr.replace(/ </g, "<");
        pos = xmlstr.search(" <");
        console.log('pos=%d',pos);
        }
        return xmlstr;
}

решена. Спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню