Here you can find the source of getChildElementsByTagNameNS(Vector vector, Node node, String tagName, String namespace)
protected static void getChildElementsByTagNameNS(Vector vector, Node node, String tagName, String namespace)
//package com.java2s; /*//from www . j a v a 2 s.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 java.util.Vector; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { protected static void getChildElementsByTagNameNS(Vector vector, Node node, String tagName, String namespace) { NodeList list = node.getChildNodes(); for (int i = 0; list != null && i < list.getLength(); i++) { try { Element element = (Element) list.item(i); if (tagName.equals(getElementLocalName(element)) && namespace.equals(getElementNamespaceURI(element))) { vector.addElement(element); } else { // RECURSIVE! DANGER, WILL ROBINSON! getChildElementsByTagNameNS(vector, element, tagName, namespace); } } catch (ClassCastException e) { } } } 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; } }