2009-09-08 18 views
15

Como sabes, la forma correcta de crear un elemento Dom en Java es hacer algo como esto.Java: crea un elemento DOM a partir del elemento, no el documento

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

Document d; 
Element e; 

e = d.createElement("tag"); 

Debe usar d para generar el elemento porque necesita un contexto de documento. (No estoy 100% seguro de por qué, pero tal malentendido esto es parte de mi problema)

Lo que no entiendo es, ¿por qué no se puede hacer algo como esto

Element e; 
Element e2; 

e2 = e.createElement("anothertag"); 

Desde correo ya tiene el contexto de d, ¿por qué no puedo crear otro elemento a partir de un elemento? Sin duda, simplificaría mi diseño sin tener que mantener una referencia al documento en todas partes.

Respuesta

6

pasé demasiado tiempo luchando con este problema del documento en el W3C DOM. El concepto de un documento de propietario también como fábrica (createElement (...)) es restrictivo. Si no está obligado a utilizar el W3C DOM, cambiaría a Open Source XOM (http://www.xom.nu). Esto fue desarrollado para ser más simple y más flexible que W3C (por ejemplo, usted puede subclasificar Elemento y Documento tiene solo un papel menor). XOM no requiere un documento a menos que desee serializarlo. Una cosa que se vuelve más simple de inmediato es mover Elementos alrededor de diferentes árboles.

Cuestiones relacionadas