bruno       2003/06/26 02:12:12

  Modified:    src/blocks/woody/java/org/apache/cocoon/woody/util
                        DomHelper.java
  Log:
  Added a few methods to get child elements
  
  Revision  Changes    Path
  1.3       +29 -0     
cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/util/DomHelper.java
  
  Index: DomHelper.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/util/DomHelper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DomHelper.java    24 Apr 2003 09:44:07 -0000      1.2
  +++ DomHelper.java    26 Jun 2003 09:12:12 -0000      1.3
  @@ -107,10 +107,26 @@
       }
   
       /**
  +     * Returns all Element children of an Element that belong to the given 
namespace and have the given local name.
  +     */
  +    public static Element[] getChildElements(Element element, String namespace, 
String localName) {
  +        ArrayList elements = new ArrayList();
  +        NodeList nodeList = element.getChildNodes();
  +        for (int i = 0; i < nodeList.getLength(); i++) {
  +            Node node = nodeList.item(i);
  +            if (node instanceof Element && namespace.equals(node.getNamespaceURI()) 
&& localName.equals(node.getLocalName()))
  +                elements.add(node);
  +        }
  +        return (Element[])elements.toArray(new Element[0]);
  +    }
  +
  +    /**
        * Returns the first child element with the given namespace and localName, or 
null
        * if there is no such element.
        */
       public static Element getChildElement(Element element, String namespace, String 
localName) {
  +        // note: instead of calling getChildElement(element, namespace, localName, 
false),
  +        // the code is duplicated here because this method does not throw an 
exception
           NodeList nodeList = element.getChildNodes();
           for (int i = 0; i < nodeList.getLength(); i++) {
               Node node = nodeList.item(i);
  @@ -118,6 +134,19 @@
                   return (Element)node;
           }
           return null;
  +    }
  +
  +    public static Element getChildElement(Element element, String namespace, String 
localName, boolean required) throws Exception {
  +        NodeList nodeList = element.getChildNodes();
  +        for (int i = 0; i < nodeList.getLength(); i++) {
  +            Node node = nodeList.item(i);
  +            if (node instanceof Element && namespace.equals(node.getNamespaceURI()) 
&& localName.equals(node.getLocalName()))
  +                return (Element)node;
  +        }
  +        if (required)
  +            throw new Exception("Missing element \"" + localName + "\" as child of 
element \"" + element.getTagName() + "\" at " + DomHelper.getLocation(element));
  +        else
  +            return null;
       }
   
       /**
  
  
  

Reply via email to