Java XML Element Get getElementContent(final Element el)

Here you can find the source of getElementContent(final Element el)

Description

Return the content for the current element.

License

Apache License

Parameter

Parameter Description
el a parameter

Exception

Parameter Description
SAXException an exception

Return

element content

Declaration

public static String getElementContent(final Element el) throws SAXException 

Method Source Code

//package com.java2s;
/* ********************************************************************
Licensed to Jasig under one or more contributor license
agreements. See the NOTICE file distributed with this work
for additional information regarding copyright ownership.
Jasig 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://  w w  w  .  ja  v a2 s .  c  o m
    
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;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class Main {
    /** Return the content for the current element. All leading and trailing
     * whitespace and embedded comments will be removed.
     *
     * <p>This is only intended for an element with no child elements.
     *
     * @param el
     * @param trim true to trim surrounding white-space
     * @return element content
     * @throws SAXException
     */
    public static String getElementContent(final Element el, final boolean trim) throws SAXException {
        StringBuilder sb = new StringBuilder();

        NodeList children = el.getChildNodes();

        for (int i = 0; i < children.getLength(); i++) {
            Node curnode = children.item(i);

            if (curnode.getNodeType() == Node.TEXT_NODE) {
                sb.append(curnode.getNodeValue());
            } else if (curnode.getNodeType() == Node.CDATA_SECTION_NODE) {
                sb.append(curnode.getNodeValue());
            } else if (curnode.getNodeType() == Node.COMMENT_NODE) {
                // Ignore
            } else {
                throw new SAXException(
                        "Unexpected child node " + curnode.getLocalName() + " for " + el.getLocalName());
            }
        }

        if (!trim) {
            return sb.toString();
        }

        return sb.toString().trim();
    }

    /** Return the content for the current element. All leading and trailing
     * whitespace and embedded comments will be removed.
     *
     * <p>This is only intended for an element with no child elements.
     *
     * @param el
     * @return element content
     * @throws SAXException
     */
    public static String getElementContent(final Element el) throws SAXException {
        return getElementContent(el, true);
    }
}

Related

  1. getElementContent(Element e)
  2. getElementContent(Element elem)
  3. getElementContent(Element elem)
  4. getElementContent(Element element, String defaultStr)
  5. getElementContent(Element element, String defaultStr)
  6. getElementContent(final Element element)
  7. getElementContent(final Element element, final boolean trim)
  8. getElementContents(Element element, String elementName)
  9. getElementDescendant(Element elem, String ns_uri, String tagName)