PropsToXML takes a standard Java properties file, and converts it into an XML file : 偏好内容 « 开发相关类 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 开发相关类 » 偏好内容屏幕截图 
PropsToXML takes a standard Java properties file, and converts it into an XML file
  


/*--

 Copyright (C) 2001 Brett McLaughlin.
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:

 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions, and the following disclaimer.

 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions, and the disclaimer that follows
    these conditions in the do*****entation and/or other materials
    provided with the distribution.

 3. The name "Java and XML" must not be used to endorse or promote products
    derived from this software without prior written permission.  For
    written permission, please contact brett@newInstance.com.

 In addition, we request (but do not require) that you include in the
 end-user do*****entation provided with the redistribution and/or in the
 software itself an acknowledgement equivalent to the following:
     "This product includes software developed for the
      'Java and XML' book, by Brett McLaughlin (O'Reilly & Associates)."

 THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 DISCLAIMED.  IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT
 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.

 */

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;
import org.jdom.Do*****ent;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

/**
 * <b><code>PropsToXML</code></b> takes a standard Java properties
 *   file, and converts it into an XML format. This makes properties
 *   like <code>enhydra.classpath.separator</code> "groupbable" by
 *   "enhydra", "classpath", and by the key name, "separator", which
 *   the standard Java <code>java.util.Properties</code> class does
 *   not allow.
 */
public class Main {

    /**
     * <p> This will take the supplied properties file, and
     *   convert that file to an XML representation, which is
     *   then output to the supplied XML do*****ent filename. </p>
     *
     @param propertiesFilename file to read in as Java properties.
     @param xmlFilename file to output XML representation to.
     @throws <code>IOException</code> - when errors occur.
     */
    public void convert(String propertiesFilename, String xmlFilename)
        throws IOException {

        // Get Java Properties object
        FileInputStream input = new FileInputStream(propertiesFilename);
        Properties props = new Properties();
        props.load(input);

        // Convert to XML
        convertToXML(props, xmlFilename);
    }

    /**
     * <p> This will handle the detail of conversion from a Java
     *  <code>Properties</code> object to an XML do*****ent. </p>
     *
     @param props <code>Properties</code> object to use as input.
     @param xmlFilename file to output XML to.
     @throws <code>IOException</code> - when errors occur.
     */
    private void convertToXML(Properties props, String xmlFilename)
        throws IOException {

        // Create a new JDOM Do*****ent with a root element "properties"
        Element root = new Element("properties");
        Do*****ent doc = new Do*****ent(root);

        // Get the property names
        Enumeration propertyNames = props.propertyNames();
        while (propertyNames.hasMoreElements()) {
            String propertyName = (String)propertyNames.nextElement();
            String propertyValue = props.getProperty(propertyName);
            createXMLRepresentation(root, propertyName, propertyValue);
        }

        // Output do*****ent to supplied filename
        XMLOutputter outputter = new XMLOutputter("  "true);
        FileOutputStream output = new FileOutputStream(xmlFilename);
        outputter.output(doc, output);
    }

    /**
     * <p> This will convert a single property and its value to
     *  an XML element and textual value. </p>
     *
     @param root JDOM root <code>Element</code> to add children to.
     @param propertyName name to base element creation on.
     @param propertyValue value to use for property.
     */
    private void createXMLRepresentation(Element root,
                                         String propertyName,
                                         String propertyValue) {

        /*
        Element element = new Element(propertyName);
        element.setText(propertyValue);
        root.addContent(element);
        */

        int split;
        String name = propertyName;
        Element current = root;
        Element test = null;

        while ((split = name.indexOf(".")) != -1) {
            String subName = name.substring(0, split);
            name = name.substring(split+1);

            // Check for existing element
            if ((test = current.getChild(subName)) == null) {
                Element subElement = new Element(subName);
                current.addContent(subElement);
                current = subElement;
            else {
                current = test;
            }
        }

        // When out of loop, what's left is the final element's name
        Element last = new Element(name);
        // last.setText(propertyValue);
        last.setAttribute("value", propertyValue);
        current.addContent(last);
    }

    /**
     * <p> Provide a static entry point for running. </p>
     */
    public static void main(String[] args) {
        if (args.length != 2) {
            System.out.println("Usage: java javaxml2.PropsToXML " +
                "[properties file] [XML file for output]");
            System.exit(0);
        }

        try {
            PropsToXML propsToXML = new PropsToXML();
            propsToXML.convert(args[0], args[1]);
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

/*   Java and XML, Second Edition
 *   Solutions to Real-World Problems
 *   By Brett McLaughlin
 *   Second Edition August 2001
 *   ISBN: 0-596-00197-5
 *   http://www.oreilly.com/catalog/javaxml2/
 */

   
    
  
Related examples in the same category
1. Put key value pair to PreferencePut key value pair to Preference
2. 获取childrenNames优惠获取childrenNames优惠
3. 从偏好中取得钥匙从偏好中取得钥匙
4. 从偏好中获取名称和父节点从偏好中获取名称和父节点
5. 从偏好中获取节点从偏好中获取节点
6. 从偏好中获得值从偏好中获得值
7. 输出偏好到XML文件输出偏好到XML文件
8. 通过引用传数据通过引用传数据
9. Retrieve the preference node using a Class object and saves and retrieves a preference in the node.
10. 确定是否偏好节点包含特定关键词
11. 确定是否偏好节点包含特定值
12. 删除偏好节点
13. 从偏好中使用和设置的Java类型值
14. 获得倾向于项和值的最大规模
15. 获得偏好树根
16. 检索偏好节点
17. 消除偏好节点
18. 确定是否存在偏好节点
19. 检索倾向父节点和子节点
20. 输出偏好节点
21. 出口偏好节点子树
22. 确定何时倾向于节点添加或删除
23. 在Windows注册表读/写数据
24. 在倾向于节点听力改变偏好值
25. 使用偏好保存数据的API使用偏好保存数据的API
26. INI文件INI文件
27. 偏好为例:导出到文件偏好为例:导出到文件
28. 属性负荷
29. 属性TreeMap和流属性TreeMap和流
30. 解析属性文件解析属性文件
31. 预置演示预置演示
32. 性能测试性能测试
33. 储存排序的属性
34. 从文本文件加载配置参数属性
35. 通过一个applet读取属性文件
36. 从Jar文件读取属性
37. 在启动目录加载一个属性文件
38. 属性文件有一个多行值
39. 转换属性名单编制成映射
40. 列出所有系统属性
41. 使用和设置属性
42. 使用XML的属性
43. 存储性能作为XML文件
44. 阅读和写作一属性文件
45. 读取系统属性作为一个整数
46. 使用java.util.Properties读取配置文件
47. 从XML文件加载特性
48. 下面是一个属性文件内容的例子
49. 使用注册表来存储信息(预置的API )
50. 在类路径中加载一个属性文件
51. 列出了系统性能
52. 性能演示
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.