Friday 5 August 2011

Get the next sibling with the same name and type

  

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 >= && 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;
  }


}

   
    
  

No comments:

Post a Comment