1
我需要讀取一個XML文件(如果存在 - 如果不存在,那麼我將創建該文件),修改一些標籤並將xml寫回。我與Java Dom4j SAXReader和XMLWriter導致多個換行
InputStream in = new FileInputStream(userFile);
SAXReader reader = new SAXReader();
Document document = reader.read(in);
Element root = document.getRootElement();
...
這樣做的,用
FileUtils.writeByteArrayToFile(userFile, getFormatedXML(document).getBytes());
...
private String getFormatedXML(Document doc) {
try {
String encoding = doc.getXMLEncoding();
if (encoding == null)
encoding = "UTF-8";
Writer osw = new StringWriter();
OutputFormat opf = new OutputFormat(" ", true, encoding);
XMLWriter writer = new XMLWriter(osw, opf);
writer.write(doc);
writer.close();
return osw.toString();
} catch (IOException e) {
}
return "ERROR";
}
問題是寫回,那之後的每個寫回一個額外的換行符將被創建。如果將outputFormat的參數從true切換到false,則不會寫入換行符。
有沒有簡單的方法來解決這個問題?
非常感謝 Hauke
非常感謝。這工作好多了。但我需要改變兩件事才能正常工作: 1)transfac.setAttribute(「indent-number」,new Integer(2)); - >我需要刪除,因爲我得到了一個IllegalArgumentException:不支持 2)trans.transform(new DocumentSource(document),result); - > DomSource對象不在我的類路徑中,但DocumentSource是。也許我正在使用不同的版本。 非常感謝! – Hauke 2012-03-21 10:37:10