Mega Code Archive

 
Categories / Java Tutorial / XML
 

Returns an iterator over the children of the given element with the given tag name

import java.util.ArrayList; import java.util.Iterator; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /*   * JBoss, Home of Professional Open Source   * Copyright 2005, JBoss Inc., and individual contributors as indicated   * by the @authors tag. See the copyright.txt in the distribution for a   * full listing of individual contributors.   *   * This is free software; you can redistribute it and/or modify it   * under the terms of the GNU Lesser General Public License as   * published by the Free Software Foundation; either version 2.1 of   * the License, or (at your option) any later version.   *   * This software is distributed in the hope that it will be useful,   * but WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * Lesser General Public License for more details.   *   * You should have received a copy of the GNU Lesser General Public   * License along with this software; if not, write to the Free   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.   */ public class Utils {   /**    * Returns an iterator over the children of the given element with    * the given tag name.    *    * @param element    The parent element    * @param tagName    The name of the desired child    * @return           An interator of children or null if element is null.    */   public static Iterator<Element> getChildrenByTagName(Element element,                                               String tagName)   {      if (element == null) return null;      // getElementsByTagName gives the corresponding elements in the whole       // descendance. We want only children      NodeList children = element.getChildNodes();      ArrayList<Element> goodChildren = new ArrayList<Element>();      for (int i=0; i<children.getLength(); i++) {         Node currentChild = children.item(i);         if (currentChild.getNodeType() == Node.ELEMENT_NODE &&              ((Element)currentChild).getTagName().equals(tagName)) {            goodChildren.add((Element)currentChild);         }      }      return goodChildren.iterator();   } }