如何摆脱行分隔符“ “在序列化XML文件时

时间:2013-01-03 13:55:07

标签: java xml-serialization eclipse-rcp newline

我在XML编辑器(Eclipse RCP应用程序)中有一个XML文件,我想将XML文档从编辑器到外部位置正确地序列化为文件。

但是,在导出文件时,我首先要删除存在于根元素中的xmlns属性。

因此,当要导出的文档具有 LF 字符作为行分隔符但是如果它具有 CRLF 行分隔符时,操作正常,在生成的文件中,我可以看到行分隔符已被部分编码。

以下是要导出的文档示例(假设它有 CRLF 作为行分隔符):

<?xml version="1.0" encoding="ISO-8859-1"?>
<document xmlns="http://mynamespace/">
    <entete>
        <rubrique>30</rubrique>
        <meta>
            <description>blablabla</description>
            <keywords>bla bla bla</keywords>
        </meta>

结果如下:

<?xml version="1.0" encoding="ISO-8859-1"?>&#13;
<document>&#13;
    <entete>&#13;
        <rubrique>30</rubrique>&#13;
        <meta>&#13;
            <description>blablabla</description>&#13;
            <keywords>bla bla bla</keywords>&#13;
        </meta>&#13;

我们可以看到,每一行都有&#13;个字符......

这是我的代码

IDOMModel model = (IDOMModel) targetEditor.getAdapter(IDOMModel.class);
IDOMDocument doc = model.getDocument();
FileOutputStream fos = null;
String xmlns = "";

File documentFile = new File(outputDir, fileName);
fos = new FileOutputStream(documentFile);
doc.getDocumentElement().removeAttribute("xmlns");

DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("LS");

LSSerializer writer = impl.createLSSerializer();
writer.getDomConfig().setParameter("xml-declaration", Boolean.FALSE);

LSOutput output = impl.createLSOutput();
output.setByteStream(fos);

writer.write(model.getDocument(), output);

我尝试了很多不同的选择......

有人知道如何解决这个问题吗?

提前谢谢。

0 个答案:

没有答案