Java tutorial
//package com.java2s; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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; public class Main { /** * Returns the text value of a given child element. * * @param parent the Element which contains the child * @param childName the (tag) name of the child * @return the text value of the child or null if no child exists or the child does not have a text value */ static public String getChildText(Node parent, String childName) { Element elem = findFirstChild(parent, childName); if (elem == null) return null; // not Found! return getElementText(elem); } /** * Finds the first (direct) child Element with a given tag name. * * @param parent the parent element below which to search the child * @param tagName the (tag) name of the desired child element * @return the child element if an element of that name existed, or null otherwise */ static public Element findFirstChild(Node parent, String tagName) { // Child Element suchen if (parent == null) return null; Node node = parent.getFirstChild(); while (node != null) { // Find all Element nodes if (node.getNodeType() == Node.ELEMENT_NODE) { // check name Element elem = (Element) node; if (tagName.equalsIgnoreCase(elem.getTagName())) return elem; // found } node = node.getNextSibling(); } return null; // not found! } /** * Retrieves the text of a given element. * * @param elem the Element for which the text value is requested * @return the text value of that element or null if the element has no text value */ static public String getElementText(Node elem) { String value = null; Node node = (elem != null) ? elem.getFirstChild() : null; // Find Text while (node != null) { // Find all Text nodes if (node.getNodeType() == Node.TEXT_NODE) { // set or append if (value == null) value = node.getNodeValue(); else value += node.getNodeValue(); } node = node.getNextSibling(); } return value; } /** * Gets the first (direct) child Element. * * @param parent the parent element below which to search the child * @return the first child element, or null otherwise */ static public Element getFirstChild(Node parent) { // Child Element suchen if (parent == null) return null; Node node = parent.getFirstChild(); while (node != null) { // Find all Element nodes if (node.getNodeType() == Node.ELEMENT_NODE) return (Element) node; // found node = node.getNextSibling(); } return null; // not found! } }