View Javadoc

    1   /*
    2    * $Id: DOMCategory.java,v 1.1 2004/04/27 02:25:29 spullara Exp $version Apr 25, 2004 5:18:30 PM $user Exp $
    3    *
    4    * Copyright 2003 (C) Sam Pullara. All Rights Reserved.
    5    *
    6    * Redistribution and use of this software and associated documentation
    7    * ("Software"), with or without modification, are permitted provided that the
    8    * following conditions are met: 1. Redistributions of source code must retain
    9    * copyright statements and notices. Redistributions must also contain a copy of
    10   * this document. 2. Redistributions in binary form must reproduce the above
    11   * copyright notice, this list of conditions and the following disclaimer in the
    12   * documentation and/or other materials provided with the distribution. 3. The
    13   * name "groovy" must not be used to endorse or promote products derived from
    14   * this Software without prior written permission of The Codehaus. For written
    15   * permission, please contact info@codehaus.org. 4. Products derived from this
    16   * Software may not be called "groovy" nor may "groovy" appear in their names
    17   * without prior written permission of The Codehaus. "groovy" is a registered
    18   * trademark of The Codehaus. 5. Due credit should be given to The Codehaus -
    19   * http://groovy.codehaus.org/
    20   *
    21   * THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS ``AS IS'' AND ANY
    22   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    23   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    24   * DISCLAIMED. IN NO EVENT SHALL THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR
    25   * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    26   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    27   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    28   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    29   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    30   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    31   *
    32   */
    33  package groovy.xml.dom;
    34
    35  import org.w3c.dom.Element;
    36  import org.w3c.dom.NodeList;
    37
    38  /***
    39   * @author sam
    40   */
    41  public class DOMCategory {
    42
    43      public static Object get(Element element, String elementName) {
    44          return getAt(element, elementName);
    45      }
    46
    47      public static Object getAt(Element element, int i) {
    48          if (element.hasChildNodes()) {
    49              NodeList nodeList = element.getChildNodes();
    50          		return nodeList.item(i);
    51          }
    52          return null;
    53      }
    54
    55      public static Object getAt(Element element, String elementName) {
    56          if (elementName.startsWith("@")) {
    57              String attrName = elementName.substring(1);
    58              	return element.getAttribute(attrName);
    59          }
    60          if (element.hasChildNodes()) {
    61              NodeList nodeList = element.getChildNodes();
    62              for (int i = 0; i < nodeList.getLength(); i++) {
    63                  Object node = nodeList.item(i);
    64                  if (node instanceof Element) {
    65                      Element child = (Element) node;
    66                      child.hasChildNodes();
    67                      if(child.getTagName().equals(elementName)) {
    68                          return child;
    69                      }
    70                  }
    71              }
    72          }
    73          return null;
    74      }
    75
    76  }