[jdom-interest] Document.getContent() only returning the root element, not all xml child content elements as expected

Julius Schorzman juliuss at gmail.com
Sun Mar 25 20:09:12 PST 2007


Great -- that's it, thanks!  A misunderstanding of the javadoc...  get's ya
every time.  ;-)

On 3/25/07, Jason Hunter <jhunter at servlets.com> wrote:
>
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.jdom.org/pipermail/jdom-interest/attachments/20070325/b9a0528e/attachment.htm


More information about the jdom-interest mailing list