Java: создание элемента DOM из элемента, а не документа

Как вы знаете, правильный способ создания элемента Dom в Java - это сделать что-то вроде этого.

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");

Так как e уже имеет контекст d, почему я не могу создать другой элемент из элемента? Это, безусловно, упростит мой дизайн, не имея необходимости постоянно ссылаться на документ.

Ответы

Ответ 2

Я слишком долго боролся с этой проблемой документа в W3C DOM. Концепция документа владельца также как factory (createElement (...)) ограничивает. Если вам не требуется использовать W3C DOM, я бы переключился на Open Source XOM (http://www.xom.nu). Это было разработано, чтобы быть более простым и гибким, чем W3C (например, вы можете подклассировать элемент и документ только второстепенную роль). XOM не требует документа, если вы не хотите сериализовать. Одна вещь, которая сразу же упрощается, заключается в перемещении элементов вокруг разных деревьев.