[Fwd: Fwd: Re: [jdom-interest] XML Signature]

Bradley S. Huffman hip at cs.okstate.edu
Mon Sep 20 19:36:40 PDT 2004


But I bet writing a simple Filter and using getDescendants(Filter) would :-)

Brad

Mike Brenner writes:

> This does not work like, say, getElementById in an
> xml svg file, which searches all levels. This code
> only searches one level.
> 
> > No, no, no. Document.getElementById(String id) would return the Element
> > that has an attribute whith type ID_ATTRIBUTE and which value is equal to
> > the id parameter. The name of the attribute is irrelevant.
> > 
> > It should behave exactly as org.w3c.dom.Document#getElementById(String id)
> > 
> > It is very easy to implement:
> > 
> > Element getElementById(String value) {
> >     for(Iterator i = getDescendants(); i.hasNext(); ) {
> >        Object node = i.next();
> >        if (node instanceof Element) {
> >           Element e = (Element) node;
> >           for(Iterator j = e.getAttributes().iterator(); j.hasNext();) {
> >              Attribute a = (Attribute) j.next();
> >              if (a.getAttributeType() == Attribute.ID_TYPE &&
> >                  value.equals(a.getValue())
> >              {
> >                 return e;
> >              }
> >           }
> >        }
> >     }
> >     return null;
> > }
> > 
> > Probably performs like dog for large documents, but then you could enhance 
> it
> > with Laurent's mapping solution.


More information about the jdom-interest mailing list