Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » JDOM User »

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

Julius Schorzman

2007-03-26

Replies:

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

On 3/25/07, Jason Hunter < jhunter@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

_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/youraddr@(protected)
©2008 junlu.com - Jax Systems, LLC, U.S.A.