Java tutorial
//package com.java2s; /******************************************************************************* * Copyright (c) 2007-2012 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ import java.util.ArrayList; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { public static Element[] getAncestors(Element parent, String name) { int i = name.indexOf('.'); if (i < 0) { return getChildren(parent, name); } Element p = getUniqueChild(parent, name.substring(0, i)); return (p == null) ? new Element[0] : getAncestors(p, name.substring(i + 1)); } public static Element[] getChildren(Element parent, String name) { ArrayList<Element> al = new ArrayList<Element>(); NodeList nl = parent.getChildNodes(); for (int i = 0; i < nl.getLength(); i++) { Node n = nl.item(i); if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equals(name)) { al.add((Element) n); } } return al.toArray(new Element[0]); } public static Element getUniqueChild(Element parent, String name) { Element[] e = getChildren(parent, name); return (e.length == 0) ? null : e[0]; } }