Android XML Node Value Get getXmlInt(Node node, String xmlLocalName, int defaultValue)

Here you can find the source of getXmlInt(Node node, String xmlLocalName, int defaultValue)

Description

Retrieves the value of that XML element as an integer.

License

Apache License

Declaration

public static int getXmlInt(Node node, String xmlLocalName,
        int defaultValue) 

Method Source Code

//package com.java2s;
/*//  w ww. j a va  2 s .c o  m
 * Copyright (C) 2009 The Android Open Source Project
 *
 * 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 org.w3c.dom.Node;

public class Main {
    /**
     * Retrieves the value of that XML element as an integer.
     * Returns the default value when the element is missing or is not an integer.
     */
    public static int getXmlInt(Node node, String xmlLocalName,
            int defaultValue) {
        String s = getXmlString(node, xmlLocalName);
        try {
            return Integer.parseInt(s);
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }

    /**
     * Retrieves the value of that XML element as a string.
     * Returns an empty string whether the element is missing or empty,
     * so you can't tell the difference.
     * <p/>
     * Note: use {@link #getOptionalXmlString(Node, String)} if you need to know when the
     * element is missing versus empty.
     *
     * @param node The XML <em>parent</em> node to parse.
     * @param xmlLocalName The XML local name to find in the parent node.
     * @return The text content of the element. Returns an empty string whether the element
     *         is missing or empty, so you can't tell the difference.
     */
    public static String getXmlString(Node node, String xmlLocalName) {
        Node child = getFirstChild(node, xmlLocalName);

        return child == null ? "" : child.getTextContent(); //$NON-NLS-1$
    }

    /**
     * Returns the first child element with the given XML local name.
     * If xmlLocalName is null, returns the very first child element.
     */
    public static Node getFirstChild(Node node, String xmlLocalName) {

        String nsUri = node.getNamespaceURI();
        for (Node child = node.getFirstChild(); child != null; child = child
                .getNextSibling()) {
            if (child.getNodeType() == Node.ELEMENT_NODE
                    && nsUri.equals(child.getNamespaceURI())) {
                if (xmlLocalName == null
                        || xmlLocalName.equals(child.getLocalName())) {
                    return child;
                }
            }
        }

        return null;
    }
}

Related

  1. getTextContent(Node n)
  2. getTextContent(Node n, StringBuffer buf)
  3. getTextContent(org.w3c.dom.Node element)
  4. getTextNodeValue(Node node)
  5. getXml(Node node)
  6. getXmlLong(Node node, String xmlLocalName, long defaultValue)
  7. getXmlString(Node node, String xmlLocalName)
  8. valueOf(Node x)