domutil.java

来自「JAVA 所有包」· Java 代码 · 共 832 行 · 第 1/2 页

JAVA
832
字号
        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 uri, String localpart) {                // search for node        Node child = parent.getFirstChild();        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.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 prefix    public static String getPrefix(Node node) {        return node.getPrefix();    }        // return the namespace URI    public static String getNamespaceURI(Node node) {        return node.getNamespaceURI();    }        //return synthetic annotation    public static String getSyntheticAnnotation(Node node) {        if(node instanceof ElementImpl) {            return ((ElementImpl)node).getSyntheticAnnotation();        }        return null;    }} // class XUtil

⌨️ 快捷键说明

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