[
Lists Home |
Date Index |
Thread Index
]
(Porting discussion from xml-dev)
Elliotte Rusty Harold scripsit:
> >In any case, this stuff is trivial under XOM. You invoke a Builder
> >from a StringReader, get the document element, detach it, and insert
> >it into the main document where you want it to go. This works because
> >XOM nodes, unlike DOM nodes, can freely be ported from one document
> >to another without doing anything magic and expensive to them.
>
> Hmm, you know now that you mention it, this isn't so trivial. The one
> element you can't detach is the root element because that would make
> its document malformed. If this is a common use-case, I'll need to
> figure out how to support that.
I finally see how to do this:
Document main = new Builder().build("main.xml");
Document aux = new Builder().build("aux.xml");
Element holder = main.getChild(1).getChild(3).getChild(5); // whatever
Element auxroot = aux.getRootElement();
aux.setRootElement(new Element("bogus"));
holder.appendChild(auxroot);
This should work nicely, though I have not tested it: get the root element
of the auxiliary document, then change its root to a newly created element,
and then append the now Document-less tree. The aux document is still sound,
though semantically meaningless: it can be allowed to become garbage.
--
Her he asked if O'Hare Doctor tidings sent from far John Cowan
coast and she with grameful sigh him answered that www.ccil.org/~cowan
O'Hare Doctor in heaven was. Sad was the man that word www.reutershealth.com
to hear that him so heavied in bowels ruthful. All jcowan@reutershealth.com
she there told him, ruing death for friend so young,
algate sore unwilling God's rightwiseness to withsay. _Ulysses_, "Oxen"
|