Java XML Node Compare compareStringNode(Node node, String tag)

Here you can find the source of compareStringNode(Node node, String tag)

Description

Checks if a node resembles the given XML tag (including attributes).

License

Apache License

Parameter

Parameter Description
node Node to compare
tag XML tag to compare, e. g. '<tagname att1="abc" att2="def">'

Return

true: Node is equal tag
false: Node is not equal tag

Declaration

public static boolean compareStringNode(Node node, String tag) 

Method Source Code

//package com.java2s;
/*//from   w  w  w  .j a  v a2s .  c o  m
 *   Copyright 2007 skynamics AG
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */

import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;

public class Main {
    /**
     * Checks if a node resembles the given XML tag (including attributes).
     *
     * @param node Node to compare
     * @param tag XML tag to compare, e. g. '<tagname att1="abc" att2="def">'
     *
     * @return
     *   true:   Node is equal tag <br>
     *   false:   Node is not equal tag
     */
    public static boolean compareStringNode(Node node, String tag) {
        if (tag.indexOf(node.getNodeName()) == -1)
            return false;

        NamedNodeMap attributes = node.getAttributes();
        if (attributes != null) {
            for (int i = 0; i < attributes.getLength(); i++) {
                if (tag.indexOf(attributes.item(i).getNodeName()) == -1)
                    return false;
                if (tag.indexOf(attributes.item(i).getNodeValue()) == -1)
                    return false;
            }
        }

        return true;
    }

    /**
     * Gets the text value of a node.
     * First, the node is checked if has a text value itself.
     * If not, the method tries to retrieve a value from the child node of the node.
     *
     * @param node Node to check
     * @return The text value or null if the node has no text value, has no children or
     * it's child has not text value or if the text value is empty.<br>
     * Any spaces are trimmed from the value.
     */
    public static String getNodeValue(Node node) {
        String value = null;

        if (node != null) {
            value = node.getNodeValue();
            if (value == null) {
                // Not a text node, check the child node
                Node child = node.getFirstChild();
                if (child != null)
                    value = child.getNodeValue();
            }

            if (value != null) {
                value = value.trim();
                if (value.length() == 0)
                    value = null;
            }
        }

        return value;
    }
}

Related

  1. areEqual(Node left, Node right)
  2. compare(Node n1, Node n2)
  3. compareLocations(Node node1, int offset1, Node node2, int offset2)
  4. compareNode(Node nQ, Node nN, Boolean considerLength, Map qvars)
  5. compareNodes(Node expected, Node actual)
  6. compareTwoNodes(Node m, Node n)
  7. equalNode(Node nodeA, Node nodeB)
  8. equals(Node n1, Node n2)
  9. isDescendant(Node testNode, Node compareToNode)