Returns an iterator over the children of the given element with the given tag name : Iterator « Collections « Java Tutorial

Home
Java Tutorial
1.Language
2.Data Type
3.Operators
4.Statement Control
5.Class Definition
6.Development
7.Reflection
8.Regular Expressions
9.Collections
10.Thread
11.File
12.Generics
13.I18N
14.Swing
15.Swing Event
16.2D Graphics
17.SWT
18.SWT 2D Graphics
19.Network
20.Database
21.Hibernate
22.JPA
23.JSP
24.JSTL
25.Servlet
26.Web Services SOA
27.EJB3
28.Spring
29.PDF
30.Email
31.J2ME
32.J2EE Application
33.XML
34.Design Pattern
35.Log
36.Security
37.Apache Common
38.Ant
39.JUnit
Java Tutorial » Collections » Iterator 




import java.util.ArrayList;
import java.util.Iterator;

import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

/**
 * A utility class to cover up the rough bits of xml parsing
 
 @author <a href="mailto:chris@kimptoc.net">Chris Kimpton</a>
 @version $Revision: 2787 $
 */
@SuppressWarnings("unchecked")
public class XmlHelper {

  /**
   * 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 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 goodChildren = new ArrayList();
    for (int i = 0; i < children.getLength(); i++) {
      Node currentChild = children.item(i);
      if (currentChild.getNodeType() == Node.ELEMENT_NODE
          && ((ElementcurrentChild).getTagName().equals(tagName)) {
        goodChildren.add(currentChild);
      }
    }
    return goodChildren.iterator();
  }

  /**
   * Gets the child of the specified element having the specified unique name.
   * If there are more than one children elements with the same name and
   * exception is thrown.
   
   @param element
   *          The parent element
   @param tagName
   *          The name of the desired child
   @return The named child.
   
   @throws Exception
   *           Child was not found or was not unique.
   */
  public static Element getUniqueChild(Element element, String tagNamethrows Exception {
    Iterator goodChildren = getChildrenByTagName(element, tagName);

    if (goodChildren != null && goodChildren.hasNext()) {
      Element child = (ElementgoodChildren.next();
      if (goodChildren.hasNext()) {
        throw new Exception("expected only one " + tagName + " tag");
      }
      return child;
    else {
      throw new Exception("expected one " + tagName + " tag");
    }
  }

  /**
   * Gets the child of the specified element having the specified name. If the
   * child with this name doesn't exist then null is returned instead.
   
   @param element
   *          the parent element
   @param tagName
   *          the name of the desired child
   @return either the named child or null
   @throws Exception
   */
  public static Element getOptionalChild(Element element, String tagNamethrows Exception {
    return getOptionalChild(element, tagName, null);
  }

  /**
   * Gets the child of the specified element having the specified name. If the
   * child with this name doesn't exist then the supplied default element is
   * returned instead.
   
   @param element
   *          the parent element
   @param tagName
   *          the name of the desired child
   @param defaultElement
   *          the element to return if the child doesn't exist
   @return either the named child or the supplied default
   @throws Exception
   */
  public static Element getOptionalChild(Element element, String tagName, Element defaultElement)
      throws Exception {
    Iterator goodChildren = getChildrenByTagName(element, tagName);

    if (goodChildren != null && goodChildren.hasNext()) {
      Element child = (ElementgoodChildren.next();
      if (goodChildren.hasNext()) {
        throw new Exception("expected only one " + tagName + " tag");
      }
      return child;
    else {
      return defaultElement;
    }
  }

  /**
   * Get the content of the given element.
   
   @param element
   *          The element to get the content for.
   @return The content of the element or null.
   @throws Exception
   */
  public static String getElementContent(final Element elementthrows Exception {
    return getElementContent(element, null);
  }

  /**
   * Get the content of the given element.
   
   @param element
   *          The element to get the content for.
   @param defaultStr
   *          The default to return when there is no content.
   @return The content of the element or the default.
   @throws Exception
   */
  public static String getElementContent(Element element, String defaultStrthrows Exception {
    if (element == null)
      return defaultStr;

    NodeList children = element.getChildNodes();
    String result = "";
    for (int i = 0; i < children.getLength(); i++) {
      if (children.item(i).getNodeType() == Node.TEXT_NODE
          || children.item(i).getNodeType() == Node.CDATA_SECTION_NODE) {
        result += children.item(i).getNodeValue();
      else if (children.item(i).getNodeType() == Node.COMMENT_NODE) {
        // Ignore comment nodes
      }
    }
    return result.trim();
  }

  /**
   * Macro to get the content of a unique child element.
   
   @param element
   *          The parent element.
   @param tagName
   *          The name of the desired child.
   @return The element content or null.
   @throws Exception
   */
  public static String getUniqueChildContent(Element element, String tagNamethrows Exception {
    return getElementContent(getUniqueChild(element, tagName));
  }

  /**
   * Macro to get the content of an optional child element.
   
   @param element
   *          The parent element.
   @param tagName
   *          The name of the desired child.
   @return The element content or null.
   @throws Exception
   */
  public static String getOptionalChildContent(Element element, String tagNamethrows Exception {
    return getElementContent(getOptionalChild(element, tagName));
  }

  public static boolean getOptionalChildBooleanContent(Element element, String name)
      throws Exception {
    Element child = getOptionalChild(element, name);
    if (child != null) {
      String value = getElementContent(child).toLowerCase();
      return value.equals("true"|| value.equals("yes");
    }

    return false;
  }

}














9.37.Iterator
9.37.1.Use Iterator to loop through ArrayList
9.37.2.Use Iterator to loop through the HashMap class
9.37.3.Iterate through a Collection using Java Iterator
9.37.4.Traverse through ArrayList in forward direction using Java ListIterator
9.37.5.Traverse through ArrayList in reverse direction using Java ListIterator
9.37.6.Iterate a Collection and remove an item (Exception, wrong version)
9.37.7.Remove an element from Collection using Java Iterator
9.37.8.Iterator from LinkedList
9.37.9.Iterate through elements of Java LinkedList using Iterator
9.37.10.An Iterator that wraps a number of Iterators
9.37.11.Array Iterator
9.37.12.Create singleton Iterator
9.37.13.Cyclic Iteration
9.37.14.Iterator Union of Iterators
9.37.15.Iterator Utils
9.37.16.Iterator class for sparse values in an array.
9.37.17.Iterator class for values contained in an array range.
9.37.18.Sorted Iterator
9.37.19.Treat an Iterator as an Iterable
9.37.20.An Iterator that returns the elements of a specified array, or other iterators etc.
9.37.21.An Iterator wrapper for an Enumeration.
9.37.22.An Iterator wrapper for an Object[], allow us to deal with all array like structures in a consistent manner.
9.37.23.An iterator that breaks text into lines. The result is equal to BufferedReader.readLine().
9.37.24.Gets the child of the specified element having the specified unique name
9.37.25.Implements an java.util.Iterator over any array
9.37.26.Protects an given iterator by preventing calls to remove().
9.37.27.Returns an iterator over the children of the given element with the given tag name
9.37.28.Use an Iterator to cycle through a collection in the forward direction.
9.37.29.This constructs an Iterator over each day in a date range defined by a focus date and range style.
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.