|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.project.ant;
import java.util.ArrayList;
import java.util.List;
import org.openide.ErrorManager;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
/**
* Utilities relating to Ant projects.
* @author Jesse Glick
*/
public class Util {
private Util() {}
/**
* Search for an XML element in the direct children of a parent.
* DOM provides a similar method but it does a recursive search
* which we do not want. It also gives a node list and we want
* only one result.
* @param parent a parent element
* @param name the intended local name
* @param namespace the intended namespace
* @return the one child element with that name, or null if none or more than one
*/
public static Element findElement(Element parent, String name, String namespace) {
Element result = null;
NodeList l = parent.getChildNodes();
for (int i = 0; i < l.getLength(); i++) {
if (l.item(i).getNodeType() == Node.ELEMENT_NODE) {
Element el = (Element)l.item(i);
if (name.equals(el.getLocalName()) && namespace.equals(el.getNamespaceURI())) {
if (result == null) {
result = el;
} else {
return null;
}
}
}
}
return result;
}
/**
* Extract nested text from an element.
* Currently does not handle coalescing text nodes, CDATA sections, etc.
* @param parent a parent element
* @return the nested text, or null if none was found
*/
public static String findText(Element parent) {
NodeList l = parent.getChildNodes();
for (int i = 0; i < l.getLength(); i++) {
if (l.item(i).getNodeType() == Node.TEXT_NODE) {
Text text = (Text)l.item(i);
return text.getNodeValue();
}
}
return null;
}
/**
* Find all direct child elements of an element.
* More useful than {@link Element#getElementsByTagNameNS} because it does
* not recurse into recursive child elements.
* Children which are all-whitespace text nodes are ignored; others cause
* an exception to be thrown.
* @param parent a parent element in a DOM tree
* @return a list of direct child elements (may be empty)
* @throws IllegalArgumentException if there are non-element children besides whitespace
*/
public static List/*
|
Copyright 1998-2008 Alvin Alexander
All Rights Reserved.
devdaily.com is based in louisville, kentucky, and this web site is hosted by godaddy.com