domutil.java

来自「JAVA的一些源码 JAVA2 STANDARD EDITION DEVELO」· Java 代码 · 共 770 行 · 第 1/2 页

JAVA
770
字号
            child = child.getNextSibling();        }        // not found        return null;    } // getFirstChildElementNS(Node,String,String):Element    /** Finds and returns the last child node with the given qualified name. */    public static Element getLastChildElementNS(Node parent,                                                String uri, String localpart) {        // search for node        Node child = parent.getLastChild();        while (child != null) {            if (child.getNodeType() == Node.ELEMENT_NODE) {                String childURI = child.getNamespaceURI();                if (childURI != null && childURI.equals(uri) &&                    child.getLocalName().equals(localpart)) {                    return (Element)child;                }            }            child = child.getPreviousSibling();        }        // not found        return null;    } // getLastChildElementNS(Node,String,String):Element    /** Finds and returns the next sibling node with the given qualified name. */    public static Element getNextSiblingElementNS(Node node,                                                  String uri, String localpart) {        // search for node        Node sibling = node.getNextSibling();        while (sibling != null) {            if (sibling.getNodeType() == Node.ELEMENT_NODE) {                String siblingURI = sibling.getNamespaceURI();                if (siblingURI != null && siblingURI.equals(uri) &&                    sibling.getLocalName().equals(localpart)) {                    return (Element)sibling;                }            }            sibling = sibling.getNextSibling();        }        // not found        return null;    } // getNextSiblingdElementNS(Node,String,String):Element    /** Finds and returns the first child node with the given name. */    public static Element getFirstChildElement(Node parent, String elemNames[]) {        // search for node        Node child = parent.getFirstChild();        while (child != null) {            if (child.getNodeType() == Node.ELEMENT_NODE) {                for (int i = 0; i < elemNames.length; i++) {                    if (child.getNodeName().equals(elemNames[i])) {                        return (Element)child;                    }                }            }            child = child.getNextSibling();        }        // not found        return null;    } // getFirstChildElement(Node,String[]):Element    /** Finds and returns the last child node with the given name. */    public static Element getLastChildElement(Node parent, String elemNames[]) {        // search for node        Node child = parent.getLastChild();        while (child != null) {            if (child.getNodeType() == Node.ELEMENT_NODE) {                for (int i = 0; i < elemNames.length; i++) {                    if (child.getNodeName().equals(elemNames[i])) {                        return (Element)child;                    }                }            }            child = child.getPreviousSibling();        }        // not found        return null;    } // getLastChildElement(Node,String[]):Element    /** Finds and returns the next sibling node with the given name. */    public static Element getNextSiblingElement(Node node, String elemNames[]) {        // search for node        Node sibling = node.getNextSibling();        while (sibling != null) {            if (sibling.getNodeType() == Node.ELEMENT_NODE) {                for (int i = 0; i < elemNames.length; i++) {                    if (sibling.getNodeName().equals(elemNames[i])) {                        return (Element)sibling;                    }                }            }            sibling = sibling.getNextSibling();        }        // not found        return null;    } // getNextSiblingdElement(Node,String[]):Element    /** Finds and returns the first child node with the given qualified name. */    public static Element getFirstChildElementNS(Node parent,                                                 String[][] elemNames) {        // search for node        Node child = parent.getFirstChild();        while (child != null) {            if (child.getNodeType() == Node.ELEMENT_NODE) {                for (int i = 0; i < elemNames.length; i++) {                    String uri = child.getNamespaceURI();                    if (uri != null && uri.equals(elemNames[i][0]) &&                        child.getLocalName().equals(elemNames[i][1])) {                        return (Element)child;                    }                }            }            child = child.getNextSibling();        }        // not found        return null;    } // getFirstChildElementNS(Node,String[][]):Element    /** Finds and returns the last child node with the given qualified name. */    public static Element getLastChildElementNS(Node parent,                                                String[][] elemNames) {        // search for node        Node child = parent.getLastChild();        while (child != null) {            if (child.getNodeType() == Node.ELEMENT_NODE) {                for (int i = 0; i < elemNames.length; i++) {                    String uri = child.getNamespaceURI();                    if (uri != null && uri.equals(elemNames[i][0]) &&                        child.getLocalName().equals(elemNames[i][1])) {                        return (Element)child;                    }                }            }            child = child.getPreviousSibling();        }        // not found        return null;    } // getLastChildElementNS(Node,String[][]):Element    /** Finds and returns the next sibling node with the given qualified name. */    public static Element getNextSiblingElementNS(Node node,                                                  String[][] elemNames) {        // search for node        Node sibling = node.getNextSibling();        while (sibling != null) {            if (sibling.getNodeType() == Node.ELEMENT_NODE) {                for (int i = 0; i < elemNames.length; i++) {                    String uri = sibling.getNamespaceURI();                    if (uri != null && uri.equals(elemNames[i][0]) &&                        sibling.getLocalName().equals(elemNames[i][1])) {                        return (Element)sibling;                    }                }            }            sibling = sibling.getNextSibling();        }        // not found        return null;    } // getNextSiblingdElementNS(Node,String[][]):Element    /**     * Finds and returns the first child node with the given name and     * attribute name, value pair.     */    public static Element getFirstChildElement(Node   parent,                                               String elemName,                                               String attrName,                                               String attrValue) {        // search for node        Node child = parent.getFirstChild();        while (child != null) {            if (child.getNodeType() == Node.ELEMENT_NODE) {                Element element = (Element)child;                if (element.getNodeName().equals(elemName) &&                    element.getAttribute(attrName).equals(attrValue)) {                    return element;                }            }            child = child.getNextSibling();        }        // not found        return null;    } // getFirstChildElement(Node,String,String,String):Element    /**     * Finds and returns the last child node with the given name and     * attribute name, value pair.     */    public static Element getLastChildElement(Node   parent,                                               String elemName,                                               String attrName,                                               String attrValue) {        // search for node        Node child = parent.getLastChild();        while (child != null) {            if (child.getNodeType() == Node.ELEMENT_NODE) {                Element element = (Element)child;                if (element.getNodeName().equals(elemName) &&                    element.getAttribute(attrName).equals(attrValue)) {                    return element;                }            }            child = child.getPreviousSibling();        }        // not found        return null;    } // getLastChildElement(Node,String,String,String):Element    /**     * Finds and returns the next sibling node with the given name and     * attribute name, value pair. Since only elements have attributes,     * the node returned will be of type Node.ELEMENT_NODE.     */    public static Element getNextSiblingElement(Node   node,                                                String elemName,                                                String attrName,                                                String attrValue) {        // search for node        Node sibling = node.getNextSibling();        while (sibling != null) {            if (sibling.getNodeType() == Node.ELEMENT_NODE) {                Element element = (Element)sibling;                if (element.getNodeName().equals(elemName) &&                    element.getAttribute(attrName).equals(attrValue)) {                    return element;                }            }            sibling = sibling.getNextSibling();        }        // not found        return null;    } // getNextSiblingElement(Node,String,String,String):Element    /**     * Returns the concatenated child text of the specified node.     * This method only looks at the immediate children of type     * <code>Node.TEXT_NODE</code> or the children of any child     * node that is of type <code>Node.CDATA_SECTION_NODE</code>     * for the concatenation.     *     * @param node The node to look at.     */    public static String getChildText(Node node) {        // is there anything to do?        if (node == null) {            return null;        }        // concatenate children text        StringBuffer str = new StringBuffer();        Node child = node.getFirstChild();        while (child != null) {            short type = child.getNodeType();            if (type == Node.TEXT_NODE) {                str.append(child.getNodeValue());            }            else if (type == Node.CDATA_SECTION_NODE) {                str.append(getChildText(child));            }            child = child.getNextSibling();        }        // return text value        return str.toString();    } // getChildText(Node):String    // return the name of this element    public static String getName(Node node) {        return node.getNodeName();    } // getLocalName(Element):  String    /** returns local name of this element if not null, otherwise        returns the name of the node    */    public static String getLocalName(Node node) {        String name = node.getLocalName();        return (name!=null)? name:node.getNodeName();    } // getLocalName(Element):  String    public static Element getParent(Element elem) {        Node parent = elem.getParentNode();        if (parent instanceof Element)            return (Element)parent;        return null;    } // getParent(Element):Element    // get the Document of which this Node is a part    public static Document getDocument(Node node) {        return node.getOwnerDocument();    } // getDocument(Node):Document    // return this Document's root node    public static Element getRoot(Document doc) {        return doc.getDocumentElement();     } // getRoot(Document(:  Element   // some methods for handling attributes:    // return the right attribute node    public static Attr getAttr(Element elem, String name) {        return elem.getAttributeNode(name);    } // getAttr(Element, String):Attr    // return the right attribute node    public static Attr getAttrNS(Element elem, String nsUri,            String localName) {        return elem.getAttributeNodeNS(nsUri, localName);    } // getAttrNS(Element, String):Attr    // get all the attributes for an Element    public static Attr[] getAttrs(Element elem) {        NamedNodeMap attrMap = elem.getAttributes();        Attr [] attrArray = new Attr[attrMap.getLength()];        for (int i=0; i<attrMap.getLength(); i++)            attrArray[i] = (Attr)attrMap.item(i);        return attrArray;    } // getAttrs(Element):  Attr[]    // get attribute's value    public static String getValue(Attr attribute) {        return attribute.getValue();    } // getValue(Attr):String    // It is noteworthy that, because of the way the DOM specs    // work, the next two methods return the empty string (not    // null!) when the attribute with the specified name does not    // exist on an element.  Beware!    // return the value of the attribute of the given element    // with the given name    public static String getAttrValue(Element elem, String name) {        return elem.getAttribute(name);    } // getAttr(Element, String):Attr    // return the value of the attribute of the given element    // with the given name    public static String getAttrValueNS(Element elem, String nsUri,            String localName) {        return elem.getAttributeNS(nsUri, localName);    } // getAttrValueNS(Element, String):Attr    // return the namespace URI    public static String getNamespaceURI(Node node) {        return node.getNamespaceURI();    }} // class XUtil

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?