2009-09-08 113 views
15

如您所知,在Java中創建Dom元素的正確方法是做類似這樣的事情。Java:從元素創建DOM元素,而不是文檔

import org.w3c.dom.Document; 
import org.w3c.dom.Element; 

Document d; 
Element e; 

e = d.createElement("tag"); 

您需要使用d來生成元素,因爲它需要一個文檔上下文。 (我不是100%肯定,爲什麼,但也許誤會這是我的問題的一部分)

我不明白的是,爲什麼你不能做這樣的事情

Element e; 
Element e2; 

e2 = e.createElement("anothertag"); 

自啓用電子已經有d的上下文,爲什麼我不能從元素創建另一個元素?這肯定會簡化我的設計,而不必在任何地方都參考文檔。

回答

6

我在W3C DOM文檔的這一問題花費的時間太長了摔跤。所有者文檔的概念也作爲工廠(createElement(...))受到限制。如果您不需要使用W3C DOM,我會更改爲Open Source XOM(http://www.xom.nu)。這比W3C開發得更簡單,更靈活(例如,您可以將元素和文檔子類化,只有很小的作用)。除非要序列化,否則XOM不需要文檔。立即變得更簡單的一件事是在不同樹木之間移動元素。