[英]Writing xml string with StAX
是否可以直接使用StAX編寫xml塊? 我知道我可以將XMLStreamWriter
與writeStartElement
, writeCharacters
和writeEndElement
一起writeStartElement
,但是xml字符串沒有靈活性。
考慮到必須編寫一個較大的xml文件(> 100 MB),如何解決此限制。
我有這樣的任意xml字符串,有時結構相當復雜,需要將它們與其他一些細節一起添加以形成最終的xml文件。 這只是一個示例,而不是實際的xml字符串。
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
Light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
盡管XMLStreamWriter
上有一個方法writeCharacters()
,但它並不能滿足您的要求。 畢竟要轉義'<', '>', '&'
由於您已經在內存中添加了XML字符串,因此您可能會采取黑客手段。
每當您需要編寫原始XML時,請保留對基礎編寫器的引用,然后執行以下操作:
// somewhere before:
Writer underlyingWriter = /* get the underlying writer from somewhere */;
XMLStreamWriter xmlStreamWriter = factory.createXmlStreamWriter(underlyingWriter);
xmlStreamWriter.flush();
underlyingWriter.write(rawXML);
underlyingWriter.flush();
// carry on using the XMLStreamWriter
您需要在使用基礎編寫器之前刷新xmlStreamWriter,以確保元素的正確順序。 另外,出於完全相同的原因,您應該刷新底層的Writer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.