KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > groovy > xml > dom > DOMCategory


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 JavaDoc;
36 import org.w3c.dom.NodeList JavaDoc;
37
38 /**
39  * @author sam
40  */

41 public class DOMCategory {
42
43     public static Object JavaDoc get(Element JavaDoc element, String JavaDoc elementName) {
44         return getAt(element, elementName);
45     }
46     
47     public static Object JavaDoc getAt(Element JavaDoc element, int i) {
48         if (element.hasChildNodes()) {
49             NodeList JavaDoc nodeList = element.getChildNodes();
50                 return nodeList.item(i);
51         }
52         return null;
53     }
54     
55     public static Object JavaDoc getAt(Element JavaDoc element, String JavaDoc elementName) {
56         if (elementName.startsWith("@")) {
57             String JavaDoc attrName = elementName.substring(1);
58                 return element.getAttribute(attrName);
59         }
60         if (element.hasChildNodes()) {
61             NodeList JavaDoc nodeList = element.getChildNodes();
62             for (int i = 0; i < nodeList.getLength(); i++) {
63                 Object JavaDoc node = nodeList.item(i);
64                 if (node instanceof Element JavaDoc) {
65                     Element JavaDoc child = (Element JavaDoc) node;
66                     child.hasChildNodes();
67                     if(child.getTagName().equals(elementName)) {
68                         return child;
69                     }
70                 }
71             }
72         }
73         return null;
74     }
75
76 }
Popular Tags