Java XML Attribute Exist hasAttribute(Node node, String attributeName, String className)

Here you can find the source of hasAttribute(Node node, String attributeName, String className)

Description

Checks the presence of an attribute value in attributes that contain whitespace-separated lists of values.

License

Apache License

Declaration

public static boolean hasAttribute(Node node, String attributeName, String className) 

Method Source Code


//package com.java2s;
/*/* ww  w. j  a v  a 2s.  c o  m*/
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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 the presence of an attribute value in attributes that
     * contain whitespace-separated lists of values. The semantic is the
     * CSS classes' ones: "foo" matches "bar foo", "foo" but not "foob"
     */
    public static boolean hasAttribute(Node node, String attributeName, String className) {
        // regex love, maybe faster but less easy to understand
        // Pattern pattern = Pattern.compile("(^|\\s+)"+className+"(\\s+|$)");
        String attr = readAttribute(node, attributeName);
        for (String c : attr.split("\\s+"))
            if (c.equalsIgnoreCase(className))
                return true;
        return false;
    }

    /**
    * Checks the presence of an attribute in the given <code>node</code>.
     *
     * @param node the node container.
     * @param attributeName the name of the attribute.
     */
    public static boolean hasAttribute(Node node, String attributeName) {
        return readAttribute(node, attributeName, null) != null;
    }

    /**
     * Reads the value of the specified <code>attribute</code>, returning the
     * <code>defaultValue</code> string if not present.
     *
     * @param node node to read the attribute.
     * @param attribute attribute name.
     * @param defaultValue the default value to return if attribute is not found.
     * @return the attribute value or <code>defaultValue</code> if not found.
     */
    public static String readAttribute(Node node, String attribute, String defaultValue) {
        NamedNodeMap attributes = node.getAttributes();
        if (null == attributes)
            return defaultValue;
        Node attr = attributes.getNamedItem(attribute);
        if (null == attr)
            return defaultValue;
        return attr.getNodeValue();
    }

    /**
     * Reads the value of an <code>attribute</code>, returning the
     * empty string if not present.
     *
     * @param node node to read the attribute.
     * @param attribute attribute name.
     * @return the attribute value or <code>""</code> if not found.
     */
    public static String readAttribute(Node node, String attribute) {
        return readAttribute(node, attribute, "");
    }
}

Related

  1. hasAttribute(final Node node, final String name)
  2. hasAttribute(final Node node, final String name)
  3. hasAttribute(Node n, String attr)
  4. hasAttribute(Node node, String attributeName)
  5. hasAttribute(Node node, String attributeName)
  6. hasAttributeValue(final Element element, final String attributeName)
  7. hasAttributeValue(Node node, String attributeName, String attributeValue)
  8. hasAttributeValue(String expected, String attribute, Element element)
  9. hasElementWithAttr(Element modsroot, String nodename, String attrname, String attrvalue)