2009-09-08 9 views
15

Jak wiesz, właściwym sposobem na stworzenie elementu Dom w Javie jest zrobienie czegoś takiego.Java: Utwórz element DOM z elementu, a nie dokument

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

Document d; 
Element e; 

e = d.createElement("tag"); 

Musisz użyć d, aby wygenerować element, ponieważ potrzebuje kontekstu dokumentu. (Nie jestem w 100% pewien dlaczego, ale może to nieporozumienie jest częścią mojego problemu)

Co ja nie rozumiem, dlaczego nie można zrobić coś takiego

Element e; 
Element e2; 

e2 = e.createElement("anothertag"); 

Od e ma już kontekst d, dlaczego nie mogę utworzyć kolejnego elementu z elementu? Z pewnością uprościłoby to mój projekt, nie musiając wszędzie mieć odniesienia do Dokumentu.

Odpowiedz

6

spędziłem zbyt długo Walka z tym problemem Dokumentu w W3C DOM. Koncepcja dokumentu właściciela również w postaci fabryki (createElement (...)) jest ograniczona. Jeśli nie będziesz musiał używać W3C DOM, to zmienię na Open Source XOM (http://www.xom.nu). Zostało to opracowane, aby było prostsze i bardziej elastyczne niż W3C (np. Można podklasy Element i Dokument ma tylko niewielką rolę). XOM nie wymaga dokumentu, chyba że chcesz serializować. Jedną rzeczą, która natychmiast staje się prostsza, jest przenoszenie elementów między różnymi drzewami.

Powiązane problemy