2008-11-10 70 views
3

我使用Java的Transformer類來處理XML文檔對象。Java XML:如何輸出子元素的名稱空間?

這是創建變壓器代碼:

import javax.xml.transform.TransformerFactory; 
import javax.xml.transform.OutputKeys; 
import javax.xml.transform.Transformer; 

Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
transformer.setOutputProperty(OutputKeys.INDENT, "no"); 
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 

transformer.transform(source, result); 

目前,我的輸出看起來是這樣的:< SVG .../>。我希望它包含每個元素的名稱空間,如在< svg:svg .../>

我該怎麼做?

+0

[關於計算器在這裏設置的命名空間的答案] [1] [1]:http://stackoverflow.com/questions/10584670/setting-namespaces-and-prefixes-in-a- Java的DOM文檔/ 13048523#13048523 – Hans 2012-10-24 15:09:41

回答

2

注意<svg xmlns="SVGNS" />相同<svg:svg xmlns:svg="SVGNS" />

你檢查你叫你的DocumentBuilderFactory實例setNamespaceAware(true)

0

javax.xml.transform的封裝說明有一個章節限定名稱表示這似乎暗示有可能獲得輸入和輸出中表示的名稱空間。

這是不是真的比空間URI將列入我清楚的結果會是什麼樣子,其他的。

試試看吧 - 希望別人將有更多的具體經驗。

0

我發現那是什麼,你需要把它放在自己作爲前綴,甚至沒有使用的命名空間。我使用el.setAttribute(「xmi:type」,類型)爲例,而不是el.setAttributeNS(「xsi」,「type」,type);或el.setAttributeNS(「http://www...../URI」,「type」,type); 我發現NS方法不會完成你將要做的事情。此外,它仍然會渲染它xmlns =「...」而不是使用前綴。

相關問題