我在(Eclipse RCP 应用程序的)XML 编辑器中有一个 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);
我尝试了许多不同的选择...
有人知道如何解决吗?
先感谢您。