Here you can find the source of getAttribute(Node node, String attName, boolean domLevel3)
public static String getAttribute(Node node, String attName, boolean domLevel3)
//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(); } } }