2010-08-12 14 views
1

我已經使用javax.xml.transform.Transformer和javax.xml.transform.TransformerFactory和org.w3c.dom.Element和org.w3c.dom.Node創建XML文件根據我的要求。它成功創建XML。唯一的問題是:javax.xml.transform.Transformer存在問題。空元素在編輯器中沒有正確顯示,但在瀏覽器中

< MYADDRESS NAME = 「AA00001」 >
<ATTN1>一個</ATTN1 >
<ADDRESS> </ADDRESS > //這是空ADDRESS元件/標籤。
<STATE> AA </STATE >
<ZIP/ZIP>
</MYADDRESS >

的<ADDRESS> </ADDRESS >示出了瀏覽器作爲< ADDRESS/>其中如在編輯器就像記事本一樣,寫字板它顯示爲<地址> <地址>。在編輯器中打開文件時,我希望它顯示爲< ADDRESS/>。

有什麼想法? 感謝您的幫助!

回答

1

你知道,那<ADDRESS></ADDRESS><ADDRESS/>是相同的,對吧?瀏覽器恰好將前者摺疊成後者。從XML解析器的角度來看,沒有區別。

0

我想你想配置轉換來收縮序列化輸出中的空元素(如文本文件)。快速瀏覽list of properties表明,沒有這種選擇。

所以我認爲你必須實現並提供你自己的內容處理器(xalan:content-handler屬性)。也許你可以繼承默認的子類並改變空元素的序列化行爲。

+0

謝謝你們的迴應。 在http://www.jdom.org/docs/apidocs/org/jdom/output/Format.html 有方法setExpandEmptyElements看起來像按需工作。 但是有沒有任何直接的方式來做到這一點javax.xml.transform.Transformer和org.w3c.dom? – Ronak 2010-08-12 10:22:34

+0

我懷疑這一點。這個Formatter只是封裝了XMLOutputter格式選項。 XMLOutputter被設計成可以使用'org.jdom.Document'對象,但是使用'org.w3c.dom.Document'類型。 jdom有一個類可以從'org.jdom.Document'轉換爲'org.w3c.dom.Document',但反過來也是如此。 – 2010-08-12 10:56:00

相關問題