Java Mailing List Archive

http://www.junlu.com/

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

SV: SV: [jdom-interest] moving an Element

Per Norrman

2004-01-21

Replies:

Hi,

well, you could perhaps use a filter that hides the optional elements
in the getChildren call:

List children = this.getElement(parentIdref).getChildren(filter);

Or, better yet, perhaps you should build a proper object model, either
as a facade directly in front of your JDOM tree, or try a data binding
solution (e.g. Castor or JAXB).

> -----Ursprungligt meddelande-----
> Från: Robert Koberg [mailto:rob@(protected)]
> Skickat: den 22 januari 2004 01:08
> Till: Per Norrman
> Kopia: jdom-interest@(protected)
> Ämne: Re: SV: [jdom-interest] moving an Element
>
>
> Per Norrman wrote:
>
> > Hi,
> >
> > What I think about it? It was hard to follow, contained unnecessary
> > operations and did not guarantee that the element was moved.
> >
> >
> > public final void moveElement(Element elem, String parentIdref,
> > String
> > prevSiblIdref) {
> >   String focusIdref = elem.getAttributeValue("id");
> >   elem.detach();
> >
> >   if ("null".equals(prevSiblIdref)) {
> >     children.add(0, elem);
> >  return;
> >   }
> >
> >   List children = this.getElement(parentIdref).getChildlen();
> >
> >   Element prev = this.getElement(prevSiblIdref);
> >   int index = children.indexOf(prev);
> >   if (index == -1) {
> >      children.add(elem);
> >   } else {
> >   children.add(index+1, elem);
> >   }  
> >
> > }
>
> Thanks! That looks great. I did not like how mine looked
> either -- thats
> why I asked :)
>
> But, I am realizing my question was too vague. I should have provided
> some example XML. There is still one problem that will make the above
> method not work in my case (and why I need[?] the apparently
> unnecessary
> operations). Below is some simplified, example XML that shows
> the issue;
> it is basically that some optional elements do not have IDs
> but /should/
> retain the original order (see comments inline).
>
> Using the XML below, how can I modify your code so that I can, for
> example, insert a page element in /site/folder[@(protected)*
> the regions element?
>
> thanks,
> -Rob
>
> <?xml version="1.0" encoding="UTF-8"?>
> <site id="site_root">
>   <label>Website</label>
>   <title>Website</title>
>   <!-- could also have a description elem
>      and/or a regions elem -->
>
>   <page id="site_ind">
>    <label>index page</label>
>    <title>index page</title>
>    <regions>
>     <region name="wide_col">
>       <content ref="a123"/>
>     </region>
>    </regions>
>   </page>
>
>   <folder id="folder1">
>    <label>folder 1</label>
>    <!-- title is optional -->
>    <title>folder 1</title>
>    <!-- description is optional -->
>    <description>blah blah</description>
>    <!-- regions is optional -->
>    <regions>
>     <region name="narrow_col">
>       <content ref="b123"/>
>     </region>
>    </regions>
>
>    <page id="folder1_ind">
>     <label>index page</label>
>     <title>index page</title>
>     <regions>
>       <region name="wide_col">
>        <content ref="c123"/>
>       </region>
>     </regions>
>    </page>
>
>    <page id="folder1_page">
>     <label>index page</label>
>     <title>index page</title>
>     <!-- no content assigned yet -->
>    </page>
>   </folder>
> </site>
>
>

_______________________________________________
To control your jdom-interest membership:
http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@(protected)


©2008 junlu.com - Jax Systems, LLC, U.S.A.