簡體   English   中英

從InputStreamReader讀取XML並將其寫入文件

[英]Read XML from InputStreamReader and write it to file

我的代碼從InputStreamReader接收一個XML String (實際上是REST請求到另一台服務器的輸出),然后將該String寫入文件(文件不僅包含XML )。

問題在於String是以XML一行形式接收的,因此它以一行很大的形式存儲在文件中(沒有縮進,制表符,格式等)。

我可以在將XML流寫入文件時接收並對其格式化嗎?

注意:我不能在這里使用DOM,它必須在不將XML加載到內存的情況下實現。

如果允許的話,您可以使用TransformerSAX進行:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM