我在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"?>
<document>
<entete>
<rubrique>30</rubrique>
<meta>
<description>blablabla</description>
<keywords>bla bla bla</keywords>
</meta>
我们可以看到,每一行都有
个字符......
这是我的代码
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);
我尝试了很多不同的选择......
有人知道如何解决这个问题吗?
提前谢谢。