1 /** 2 * 3 * Copyright 2003-2004 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 package org.apache.geronimo.deployment.util; 19 20 import org.w3c.dom.Element; 21 import org.w3c.dom.NodeList; 22 import org.w3c.dom.Node; 23 24 /** 25 * 26 * 27 * @version $Rev: 355877 $ $Date: 2005-12-10 18:48:27 -0800 (Sat, 10 Dec 2005) $ 28 */ 29 public class XMLUtil { 30 public static Object getContent(Element element) { 31 NodeList nl = element.getChildNodes(); 32 StringBuffer content = new StringBuffer(); 33 for (int i = 0; i < nl.getLength(); i++) { 34 Node node = nl.item(i); 35 switch (node.getNodeType()) { 36 case Node.ELEMENT_NODE: 37 return node; 38 case Node.CDATA_SECTION_NODE: 39 case Node.TEXT_NODE: 40 content.append(node.getNodeValue()); 41 break; 42 } 43 } 44 return content.toString().trim(); 45 } 46 47 public static Element getChild(Element parent, String name) { 48 for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) { 49 if (child instanceof Element && name.equals(child.getNodeName())) { 50 return (Element) child; 51 } 52 } 53 return null; 54 } 55 56 public static String getChildContent(Element parent, String name, String missing, String empty) { 57 Element child = getChild(parent, name); 58 if (child == null) { 59 return missing; 60 } else { 61 String content = (String) getContent(child); 62 return (content != null) ? content : empty; 63 } 64 } 65 }