[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] code challenge
It may be questionable form to talk code on the list, but for them that like to roll their sleeves up here's a bit of fun. I was moving an app to a different environment when (surprise surprise) it broke. After a lot of nosing around, I found the culprit - getting a list of all elements in a populated XML DOM doc this way : NodeList elements = document.getDocumentElement().getElementsByTagNameNS("*", "*"); It seems the DOM library in the new environment didn't support this and (DOM 1 style??) ignored the ns parameter and always returned no elements at all. Ok, assuming list subscribers have coding calibre a fraction of their verbal skills, producing a list of all elements by other means would be no challenge at all (if there's another built-in that can do this directly, I humbly apologise for wasting your time). However (for reasons I'd rather not go into), I need this done in as few lines of code as possible. My attempt is below - the use of a global looks ugly to me, but it works. The prize is a bottle of Chianti (winner collects ;-) Cheers, Danny. List elements = new ArrayList(); public void getChildren(Element element) { elements.add(element); Node child; Node next = (Node) element.getFirstChild(); while ((child = next) != null) { next = child.getNextSibling(); if (child.getNodeType() == Node.ELEMENT_NODE) { getChildren((Element) child); } } } --- Danny Ayers <stuff> http://www.isacat.net </stuff> Idea maps for the Semantic Web http://ideagraph.net
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|