Returns a Properties object matching the given node : Properties « Collections « Java Tutorial






/**
 * EasyBeans
 * Copyright (C) 2006 Bull S.A.S.
 * Contact: easybeans@ow2.org
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
 * USA
 *
 * --------------------------------------------------------------------------
 * $Id: XMLUtils.java 2049 2007-11-20 14:32:56Z benoitf $
 * --------------------------------------------------------------------------
 */


import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

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

/**
 * Class with some useful methods on XML document.
 */
public final class XMLUtils {

  /**
   * Returns a Properties object matching the given node.
   * @param ns the namespace.
   * @param base the element from where to search.
   * @param name of the element to get.
   * @return the value of this element.
   */
  public static Properties getPropertiesValueElement(final String ns, final Element base, final String name) {
      Properties returnedProperties = new Properties();

      // Get element
      NodeList list = base.getElementsByTagNameNS(ns, name);
      if (list.getLength() == 1) {
          Element element = (Element) list.item(0);

          // Get property element
          NodeList properties = element.getElementsByTagNameNS(ns, "property");

          // If properties is present, analyze them and add them
          if (properties.getLength() > 0) {
              for (int i = 0; i < properties.getLength(); i++) {
                  Element elemProperty = (Element) properties.item(i);
                  String pName = getAttributeValue(elemProperty, "name");
                  String pValue = getAttributeValue(elemProperty, "value");
                  if (pName != null && pValue != null) {
                      returnedProperties.setProperty(pName, pValue);
                  }

              }
          }
      } else if (list.getLength() > 1) {
          throw new IllegalStateException("Element '" + name + "' on '" + base + "' should be unique but there are '"
                  + list.getLength() + "' elements");
      }

      return returnedProperties;
  }
  /**
   * Returns the value of the attribute of the given element.
   * @param base the element from where to search.
   * @param name of the attribute to get.
   * @return the value of this element.
   */
  public static String getAttributeValue(final Element base, final String name) {

      // get attribute of this element...
      NamedNodeMap mapAttributes = base.getAttributes();
      Node node = mapAttributes.getNamedItem(name);
      if (node != null) {
          return node.getNodeValue();
      }
      return null;
  }
}








9.34.Properties
9.34.1.Setting and Getting Elements
9.34.2.using properties
9.34.3.Getting property by String key value
9.34.4.Getting a key List from Properties
9.34.5.Loading and Saving properties
9.34.6.Use store() to save the properties
9.34.7.List Properties to a print stream or print writer
9.34.8.Using Enumeration to loop through Properties
9.34.9.Put value to a Property list.
9.34.10.Sort Properties when saving
9.34.11.Sorts a property list and turns the sorted list into a string.
9.34.12.Sorts property list and print out each key=value pair prepended with specific indentation.
9.34.13.Load a properties file in the classpath
9.34.14.A Properties file stored in a JAR can be loaded this way
9.34.15.Load a properties file in the startup directory
9.34.16.Have a multi-line value in a properties file
9.34.17.Use XML with Properties
9.34.18.Store properties as XML file
9.34.19.Getting and Setting Properties
9.34.20.Convert a Properties list into a map.
9.34.21.To read a Properties file via an Applet
9.34.22.Read system property as an integer
9.34.23.Read a set of properties from the received input stream, strip off any excess white space that exists in those property values,
9.34.24.Property access utility methods
9.34.25.An utility class to ease up using property-file resource bundles.
9.34.26.Copy a set of properties from one Property to another.
9.34.27.Create Properties from String array
9.34.28.Gets strong-type-value property from a standard Properties
9.34.29.Merge Properties Into Map
9.34.30.Property Loader
9.34.31.Returns a Properties object matching the given node
9.34.32.The properties iterator iterates over a set of enumerated properties.
9.34.33.Use a default property list.