Here you can find the source of getFirstElement(Node node, String namespace, String name)
Parameter | Description |
---|---|
node | The node. |
namespac | The namespace. |
name | The name. |
public static Element getFirstElement(Node node, String namespace, String name)
//package com.java2s; /*//from w w w .j a v a 2s . co m * $Header$ * $Revision: 207706 $ * $Date: 2004-08-30 16:08:10 +0800 (Mon, 30 Aug 2004) $ * * ==================================================================== * * Copyright 1999-2002 The Apache Software Foundation * * 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.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { /** * Get the first element matched with the given namespace and name. * * @param node The node. * @param namespac The namespace. * @param name The name. * @return The wanted first element. */ public static Element getFirstElement(Node node, String namespace, String name) { NodeList children = node.getChildNodes(); if (children == null) return null; for (int i = 0; i < children.getLength(); i++) { try { Element child = (Element) children.item(i); if (name.equals(getElementLocalName(child)) && namespace.equals(getElementNamespaceURI(child))) { return child; } } catch (ClassCastException e) { } } return null; } public static String getElementLocalName(Element element) { String localName = null; if (element == null) { throw new IllegalArgumentException("The element cannot be null"); } else { try { localName = element.getLocalName(); } catch (NoSuchMethodError e) { localName = element.getTagName(); int index = localName.indexOf(":"); if (index > 0 && index < (localName.length() - 1)) { localName = localName.substring(index + 1); } } } return localName; } public static String getElementNamespaceURI(Element element) { String namespace = null; if (element == null) { throw new IllegalArgumentException("The element cannot be null"); } else { try { namespace = element.getNamespaceURI(); } catch (NoSuchMethodError e) { String tagName = element.getTagName(); String attribute = "xmlns"; int index = tagName.indexOf(":"); if (index > 0 && index < (tagName.length() - 1)) { attribute += (":" + tagName.substring(0, index)); } boolean found = false; for (Node node = element; !found && node != null; node = node.getParentNode()) { try { String tmp = ((Element) node).getAttribute(attribute); if (tmp != null && !tmp.equals("")) { namespace = tmp; found = true; } } catch (ClassCastException f) { // this will happen for Documents } } } } return namespace; } }