Java tutorial
//package com.java2s; /* * Copyright (c) 2011, the JDeltaSync project. 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 java.util.ArrayList; import java.util.List; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { private static List<Element> find(Node root, String nsUri, String localName, boolean recursive) { List<Element> result = new ArrayList<Element>(); NodeList nl = root.getChildNodes(); if (nl != null) { int len = nl.getLength(); for (int i = 0; i < len; i++) { Node child = nl.item(i); if (child instanceof Element) { String childUri = child.getNamespaceURI(); String childLocalName = child.getLocalName(); if (("*".equals(nsUri) || nsUri == null && childUri == null || nsUri.equals(childUri)) && localName.equals(childLocalName)) { result.add((Element) child); } else if (recursive) { result.addAll(find(child, nsUri, localName, recursive)); } } } } return result; } }