[jdom-interest] Convenience method for deep Element structures
Patrick Dowler
Patrick.Dowler at nrc.ca
Tue Jul 25 10:21:21 PDT 2000
On Wed, 12 Jul 2000, Aleksi Kallio wrote:
> How about providing a method such as:
>
> doc.getNestedElement("settings/database/admin/password")
>
> (instead of
> doc.getRootElement().getChild("database").getChild("admin").getChild("password"))
This sort of thing doesn't add any value to the API per se. The method could
be implemented in any utility class just as easily, which lets the core API
remain small. Somehting like this would do it:
class MyUtilityClass
{
public String getNestedElement(Element base, String pathHack)
{
Element cur = base;
// probably should trim the path, and maybe check for
// leading and trailing /
StringTokenizer st = new StringTokenizer(pathHack, "/");
while (st.hasMoreTokens() )
{
cur = cur.getChild( st.nextToken() );
if ( cur == null )
return null; // failed
}
return cur.getContent(); // or cur.getText() in the proposed API
}
}
It could even be static. Since getNestedElement can use the existing API
and doesn't need to know anything ab out elements, it is best left outside.
Also, XPath may be the way to do this anyway, so it would likely get
depractated later on...
--
Patrick Dowler
Canadian Astronomy Data Centre
More information about the jdom-interest
mailing list