public static synchronized ArrayNodeList getChildNodes( Node node, short type, boolean caseSensitive, String filter) { ArrayNodeList rtn = new ArrayNodeList(); NodeList nodes = node.getChildNodes(); int len = nodes.getLength(); Node n; for (int i = 0; i < len; i++) { try { n = nodes.item(i); if (n != null && n.getNodeType() == type) { if (filter == null || (caseSensitive ? filter.equals(n.getLocalName()) : filter.equalsIgnoreCase(n.getLocalName()))) rtn.add(n); } } catch (Throwable t) { } } return rtn; }