[
Lists Home |
Date Index |
Thread Index
]
> [ Danny Ayers [mailto:danny666@virgilio.it] ]
> 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
|