2013-07-05 98 views
1

我是流式XML文檔,以下是示例代碼。帶有「<元素屬性.. />」而不是整個結束標記的StAX結束元素標記</element>

final XMLOutputFactory xof = XMLOutputFactory.newInstance(); 
final ByteArrayOutputStream os = new ByteArrayOutputStream(); 
final XMLStreamWriter xtw = xof.createXMLStreamWriter(os); 
xtw.writeStartDocument("utf-8", "1.0"); 
xtw.writeStartElement("Buddy"); 
xtw.writeAttribute("Name", "AB"); 
xtw.writeAttribute("Age", "25"); 
xtw.writeAttribute("petName", "XX"); 
xtw.writeEndElement(); 
xtw.close(); 

這將產生

<?xml version="1.0" encoding="utf-8"?><Buddy Name="AB" Age="25" petName="XX"></Buddy> 

如何讓StAX的寫

<?xml version="1.0" encoding="utf-8"?><Buddy Name="AB" Age="25" petName="XX"/> 

即結束標記 「」 不是必需的,應該儘快結束標記爲屬性被寫入。有任何想法嗎?

意圖:最大限度地減少通過網絡發送的字節數。每秒大約15k條消息。因此它值得每個消息保存一些字節。

回答

3

你應該使用writeEmptyElement(...)此:

xtw.writeStartDocument("utf-8", "1.0"); 
xtw.writeEmptyElement("Buddy"); 
xtw.writeAttribute("Name", "AB"); 
xtw.writeAttribute("Age", "25"); 
xtw.writeAttribute("petName", "XX"); 
xtw.writeEndDocument(); 

沒有writeEndElement()需要對空元素。

+0

完美的謝謝。 – GBP

相關問題