XML Java

import org.w3c.dom.Node;
public class Utils {
  /**
   * Get the next sibling with the same name and type
   */
  public static Node getNext(Node current) {
      String name = current.getNodeName();
      int type = current.getNodeType();
      return getNext(current, name, type);
  }
  /**
   * Return the next sibling with a given name and type
   */
  public static Node getNext(Node current, String name, int type) {
      Node first = current.getNextSibling();
      if (first == null) {
          return null;
      }
      for (Node node = first; node != null; node = node.getNextSibling()) {
          if (type >= 0 && node.getNodeType() != type) {
              continue;
          }
          if (name == null) {
              return node;
          }
          if (name.equals(node.getNodeName())) {
              return node;
          }
      }
      return null;
  }
  /**
   * Get the first child of the specified type.
   * 
   * @param parent
   * @param type
   * @return
   */
  public static Node getChild(Node parent, int type) {
      Node n = parent.getFirstChild();
      while (n != null && type != n.getNodeType()) {
          n = n.getNextSibling();
      }
      if (n == null) {
          return null;
      }
      return n;
  }
}