Java XML Element Children getSubelementString(final Element element, final String name)

Here you can find the source of getSubelementString(final Element element, final String name)

Description

Locate a sub-element tagged 'name', return its value.

License

Open Source License

Parameter

Parameter Description
element Element where to start looking. May be null.
name Name of sub-element to locate.

Return

Returns string that was found or empty string.

Declaration

public static final String getSubelementString(final Element element, final String name) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright (c) 2010 Oak Ridge National Laboratory.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 ******************************************************************************/

import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class Main {
    /** Locate a sub-element tagged 'name', return its value.
     *//from ww w.j  ava 2s  .  c o  m
     *  Will only go one level down, not search the whole tree.
     *
     *  @param element Element where to start looking. May be null.
     *  @param name Name of sub-element to locate.
     *
     *  @return Returns string that was found or empty string.
     */
    public static final String getSubelementString(final Element element, final String name) {
        if (element == null)
            return "";
        Node n = element.getFirstChild();
        n = findFirstElementNode(n, name);
        if (n != null) {
            Node text_node = n.getFirstChild();
            if (text_node == null)
                return "";
            return text_node.getNodeValue();
        }
        return "";
    }

    /** Locate a sub-element tagged 'name', return its value.
     *
     *  Will only go one level down, not search the whole tree.
     *
     *  @param element Element where to start looking. May be null.
     *  @param name Name of sub-element to locate.
     *  @param default_value Default value if not found
     *
     *  @return Returns string that was found or default_value.
     */
    public static final String getSubelementString(final Element element, final String name,
            final String default_value) {
        if (element == null)
            return default_value;
        Node n = element.getFirstChild();
        n = findFirstElementNode(n, name);
        if (n != null) {
            Node text_node = n.getFirstChild();
            if (text_node == null)
                return ""; // <name/>: Node is there, "" as value
            return text_node.getNodeValue();
        }
        return default_value;
    }

    /** Look for Element node if given name.
     *  <p>
     *  Checks the node and its siblings.
     *  Does not descent down the 'child' links.
     *  @param node Node where to start.
     *  @param name Name of the nodes to look for.
     *  @return Returns node or the next matching sibling or null.
     */
    public static final Element findFirstElementNode(Node node, final String name) {
        while (node != null) {
            if (node.getNodeType() == Node.ELEMENT_NODE && node.getNodeName().equals(name))
                return (Element) node;
            node = node.getNextSibling();
        }
        return null;
    }
}

Related

  1. getSubElement(Element element, String subTagName)
  2. getSubelementBoolean(final Element element, final String element_name, final boolean default_value)
  3. getSubelementDouble(final Element element, final String element_name)
  4. getSubelementDouble(final Element element, final String name, final double default_value)
  5. getSubelementString(final Element element, final String name)
  6. getSubelementString(final Element element, final String name, final String default_value)
  7. getSubelementStrings(final Element element, final String name)
  8. getSubelementText(Element element, String subelementName)
  9. getSubNodeText(Element modsroot, String nodename, String subnodename)