Java XML Attribute Get getAttribute(Node node, String attName, boolean domLevel3)

Here you can find the source of getAttribute(Node node, String attName, boolean domLevel3)

Description

get Attribute

License

Open Source License

Declaration

public static String getAttribute(Node node, String attName, boolean domLevel3) 

Method Source Code


//package com.java2s;
/*/*from  www .j  ava 2s .co  m*/
 * Copyright (c) 2008-2019, Hazelcast, Inc. All Rights Reserved.
 *
 * 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.Node;

public class Main {
    public static String getAttribute(Node node, String attName, boolean domLevel3) {
        final Node attNode = node.getAttributes().getNamedItem(attName);
        if (attNode == null) {
            return null;
        }
        return getTextContent(attNode, domLevel3);
    }

    public static String getTextContent(final Node node, boolean domLevel3) {
        if (node != null) {
            final String text;
            if (domLevel3) {
                text = node.getTextContent();
            } else {
                text = getTextContentOld(node);
            }
            return text != null ? text.trim() : "";
        }
        return "";
    }

    private static String getTextContentOld(final Node node) {
        final Node child = node.getFirstChild();
        if (child != null) {
            final Node next = child.getNextSibling();
            if (next == null) {
                return hasTextContent(child) ? child.getNodeValue() : "";
            }
            final StringBuilder buf = new StringBuilder();
            appendTextContents(node, buf);
            return buf.toString();
        }
        return "";
    }

    private static boolean hasTextContent(final Node node) {
        final short nodeType = node.getNodeType();
        return nodeType != Node.COMMENT_NODE && nodeType != Node.PROCESSING_INSTRUCTION_NODE;
    }

    private static void appendTextContents(final Node node, final StringBuilder buf) {
        Node child = node.getFirstChild();
        while (child != null) {
            if (hasTextContent(child)) {
                buf.append(child.getNodeValue());
            }
            child = child.getNextSibling();
        }
    }
}

Related

  1. getAttribute(Node iNode, String iAttributeName)
  2. getAttribute(Node n, String attr)
  3. getAttribute(Node n, String attr, String def)
  4. getAttribute(Node n, String name)
  5. getAttribute(Node node, String att_name)
  6. getAttribute(Node node, String attr)
  7. getAttribute(Node node, String attr)
  8. getAttribute(Node node, String attr)
  9. getAttribute(Node node, String attr)