Here you can find the source of getChild(final Element root, final String name)
Parameter | Description |
---|---|
root | the parent DOM element |
name | the name of a child element |
public static Element getChild(final Element root, final String name)
//package com.java2s; /*/*w w w . j a v a2 s . c o m*/ * Copyright 2004-2007 Stephen McConnell * * 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 org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { /** * Return a named child relative to a supplied element. * @param root the parent DOM element * @param name the name of a child element * @return the child element of null if the child does not exist */ public static Element getChild(final Element root, final String name) { if (null == root) { return null; } Element[] children = getChildren(root); for (int i = 0; i < children.length; i++) { Element child = children[i]; //if( name.equals( child.getTagName() ) ) if (name.equals(child.getLocalName())) { return child; } else if (name.equals(child.getTagName())) { return child; } } return null; } /** * Return all children matching the supplied element name. * @param root the parent DOM element * @param name the name against which child element will be matched * @return the array of child elements with a matching name */ public static Element[] getChildren(final Element root, final String name) { if (null == root) { return new Element[0]; } Element[] children = getChildren(root); final ArrayList<Element> result = new ArrayList<Element>(); for (int i = 0; i < children.length; i++) { final Element child = children[i]; if (name.equals(child.getLocalName())) { result.add(child); } else if (name.equals(child.getTagName())) { result.add(child); } } return (Element[]) result.toArray(new Element[0]); } /** * Return all children of the supplied parent. * @param root the parent DOM element * @return the array of all children */ public static Element[] getChildren(final Element root) { if (null == root) { return new Element[0]; } final NodeList list = root.getChildNodes(); final int n = list.getLength(); if (n < 1) { return new Element[0]; } final ArrayList<Element> result = new ArrayList<Element>(); for (int i = 0; i < n; i++) { final Node item = list.item(i); if (item instanceof Element) { result.add((Element) item); } } return (Element[]) result.toArray(new Element[0]); } }