[英]Read XML from InputStreamReader and write it to file
我的代碼從InputStreamReader
接收一個XML
String
(實際上是REST
請求到另一台服務器的輸出),然后將該String
寫入文件(文件不僅包含XML
)。
問題在於String
是以XML
一行形式接收的,因此它以一行很大的形式存儲在文件中(沒有縮進,制表符,格式等)。
我可以在將XML
流寫入文件時接收並對其格式化嗎?
注意:我不能在這里使用DOM,它必須在不將XML加載到內存的情況下實現。
如果允許的話,您可以使用Transformer
和SAX
進行:
public static void prettyPrintXmlToFile(String sourceXml, File targetFile) throws Exception{
Transformer serializer = SAXTransformerFactory.newInstance().newTransformer();
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
Source xmlSource = new SAXSource(new InputSource(new StringReader(sourceXml)));
StreamResult res = new StreamResult(targetFile);
serializer.transform(xmlSource, res);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.