[jdom-interest] Document.getContent() only returning the root
element, not all xml child content elements as expected
Jason Hunter
jhunter at servlets.com
Sun Mar 25 20:04:42 PST 2007
Hi Julius,
document.getContent() returns all nodes directly under the document,
which would be the root element and maybe some comments or processing
instructions, and maybe a doctype. It's not designed to iterate through
the full document. For that you can call document.getDescendants(). It
gives you an iterator for all nodes matching the optional filter you
pass it.
-jh-
Julius Schorzman wrote:
> Hi all. I'm a bit flummoxed by an issue with JDom, which I've been
> using for about two years now. It appears that Document.getContent is
> only returning the root element of the document, not all of the elements
> in the document. For example, here is some test code:
>
> private Document d;
>
> private void parse(){
>
> //output the xml to make sure it loaded correctly
> XMLOutputter out = new XMLOutputter(Format.getPrettyFormat());
> try {
> out.output(d, System.out);
> } catch (Exception ignored) {}
>
> //print out the number of elements returned by getContent
> System.out.println( d.getContent( ).size() );
>
> //set the ID for this document
> for ( Object o : d.getContent( ) ) {
>
> try {
> System.out.println(((Element)o).getName());
> } catch ( ClassCastException ignored ) { }
>
> }
>
> }
>
> The xml document is:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <test>
> <a>
> <b>
> <c>
> <d />
> </c>
> </b>
> </a>
> <a>
> <b>
> <c>
> <d />
> </c>
> </b>
> </a>
> <a>
> <b>
> <c>
> <d />
> </c>
> </b>
> </a>
> </test>
>
> And the outcome of this is:
> [the xml document as shown above]
> 1
> test
>
> So, as you can see, the root element <test> is the one and only element
> returned in the list returned by d.getContent( ). Can anyone explain
> why this might be?
>
> Thanks! Please forgive me if this has been answered previously -- I
> searched for quite a while and couldn't find a thread with this issue.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> To control your jdom-interest membership:
> http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.com
More information about the jdom-interest
mailing list