Here you can find the source of getAttributeFromClosestAncestorOfAnyKind(Node node, String attributeName)
node
's ancestors, looking for one with an attribute named attributeName
, irrespective of the respective ancestorName
, and return the attribute's value
Parameter | Description |
---|---|
node | node |
attributeName | attributeName |
public static String getAttributeFromClosestAncestorOfAnyKind(Node node, String attributeName)
//package com.java2s; /**//from www. j a va 2 s. c o m * Copyright 2000-2006 DFKI GmbH. * All Rights Reserved. Use is subject to license terms. * * This file is part of MARY TTS. * * MARY TTS is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ import org.w3c.dom.Element; import org.w3c.dom.Node; public class Main { /** * Climb through <code>node</code>'s ancestors, looking for one with an attribute named <code>attributeName</code>, * irrespective of the respective <code>ancestorName</code>, and return the attribute's value * * @param node * node * @param attributeName * attributeName * @return value of attribute from closest ancestor with that attribute, or the empty string if no ancestor has that * attribute. * */ public static String getAttributeFromClosestAncestorOfAnyKind(Node node, String attributeName) { Node parentNode; while (node != null && (parentNode = node.getParentNode()) != null) { if (parentNode.hasAttributes()) { Element parentElement = (Element) parentNode; if (parentElement.hasAttribute(attributeName)) { return parentElement.getAttribute(attributeName); } } node = parentNode; } return ""; } }