[jdom-interest] Last call: getChild/getChildren versus
getChildElement/getChildElements
Elliotte Rusty Harold
elharo at metalab.unc.edu
Fri Feb 6 17:32:07 PST 2004
At 6:43 PM -0600 2/6/04, Bradley S. Huffman wrote:
>Really? Using a little XOM code as an example, I find
>
> for (int i = 0; i < element.getChildCount(); i++) {
> Node child = element.getChild(i);
> if (child instanceof Element) {
> processElement(children.get(i));
> }
> }
>
>just as easy as
>
> Elements children = element.getChildElements();
> for (int i = 0; i < children.size(); i++) {
> processElement(children.get(i));
> }
If there are a lot of them, the latter is going to be much faster in
XOM. instanceof is a dog. However, in many situations, it won't be
slow enough to matter so do what you prefer until profiling proves
otherwise.
>And is getChildElements("bar") in JDOM and XOM really more convenient
>that dom4j Node.selectNodes("child::bar")? It isn't as powerfull. Is it
>faster? Maybe/maybe not. Will that still be true next year? Agian maybe/maybe
>not.
>
XPath is nicer, and XOM will eventually support it. The problem is it
isn't sop obvious how to mix it with Java. The simple cases like
selectNodes("child::bar") work easily; but things get real tricky
when you consider:
* Elements in namespaces
* XPath variables
* XPath expressions that return something other than a node-set
It's very hard to get the design of this right (as we've seen on this
list in the last day or two) and I'm not sure dom4j has done it.
--
Elliotte Rusty Harold
elharo at metalab.unc.edu
Effective XML (Addison-Wesley, 2003)
http://www.cafeconleche.org/books/effectivexml
http://www.amazon.com/exec/obidos/ISBN%3D0321150406/ref%3Dnosim/cafeaulaitA
More information about the jdom-interest
mailing list