[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: code challenge
> [ Danny Ayers [mailto:danny666@v...] ] > Paul Brown sent me a way of getting rid of the global that > should work, just lugging the list along for every call : > public ArrayList getElements(Document d) { > return getElements(d.getDocumentElement(),new ArrayList(Collections.singleton(d.getDocumentElement())); > } I'm a C programmer at heart. You see a Java object, I see a pointer... > 05> if (next.getNodeType() == Node.ELEMENT_NODE) { > 06> getElements(e,l).add(e); > 07> } Well, this won't work either (it should be adding next, not e), but I have the excuse of having written the code in my phone's email client. This will work (and is shorter, although I added some linebreaks for style purposes): public List getElements(Document d) { return getElements( d.getDocumentElement(), new ArrayList(Collections.singleton(d.getDocumentElement())) ); } private final List getElements(Node e, final List l) { for (Node next = e.getFirstChild();next != null;next = next.getNextSibling()) { if (next.getNodeType() == Node.ELEMENT_NODE) { getElements(next,l).add(next); } } return l; } That said, I'm assuming that we can do a Riserva from 1997 or 1998? Cheers, Paul
|
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
|