新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论DOM, SAX, XPath等。
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLXML.ORG.CN讨论区 - XML技术『 DOM/SAX/XPath 』 → XML-properties in jdk1.4 using dom4j 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3505 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: XML-properties in jdk1.4 using dom4j 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     杨一 帅哥哟,离线,有人找我吗?水瓶座1983-2-19
      
      
      等级:大一(猛啃高等数学)
      文章:11
      积分:135
      门派:XML.ORG.CN
      注册:2005/11/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给杨一发送一个短消息 把杨一加入好友 查看杨一的个人资料 搜索杨一在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看杨一的博客楼主
    发贴心情 XML-properties in jdk1.4 using dom4j

    作为DOM4J应用的例子
    用XML实现的properties,欢迎大家指正

    /**
    * @author yangyi
    * @version 1.0
    */

    import java.io.FileWriter;
    import java.io.IOException;
    import java.net.URL;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Properties;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.Node;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;

    public class XMLProperty extends Properties {

     Document document;

     Node node;

     /**
      * override 超类的方法,根据url载入Document
      *
      * @param url
      */

     public void load(URL url) {
      SAXReader reader = new SAXReader();
      try {
       document = reader.read(url);
      } catch (DocumentException e) {
       e.printStackTrace();
      }
     }

     /**
      * overload the super method 设置一些信息到xml文件中,如果这些信息以前不存在,则在xml中新增记

    录,
      * 如果已经存在,则根据传入的参数对其进行更新
      *
      * @param name
      *            设置的文件信息
      * @param value
      *            设置的value值
      * @param add
      *            设置的附加信息
      */

     public void setProperty(String name, String value, String add) {
      // 以特定的格式展现时间
      Date date = new Date();
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
      String fd = sdf.format(date);

      Element table = null;
      // 如果不存在这样一个节点
      if (node == null) {
       Element xml = document.getRootElement();
       table = xml.addElement("table");
       table.addText(value);
      }
      // 如果已经存在这个节点,但是类型不相同
      else if (node instanceof Element) {
       table = (Element) node;
       table.setText(value);
      }
      // 如果类型转换出现错误
      else
       System.out.println("程序类型转换出错!");

      table.addAttribute("name", name).addAttribute("time", fd)
        .addAttribute("add", add);

      try {
       OutputFormat format = OutputFormat.createPrettyPrint();
       XMLWriter writer = new XMLWriter(new FileWriter("properties.xml"),
         format);
       writer.write(document);
       writer.close();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

     /**
      * override 超类的方法。如果给据参数找不到相关的信息,则返回null,否则返回value
      *
      * @param str表名(xml文件名)
      * @return 要返回的value,如果没有找到就返回null
      */
     public String getProperty(String fileName) {
      node = document.selectSingleNode("//table[@name='" + str+ "']");
      if (node == null) {
       return null;
      } else {
       return node.getText();
      }
     }
    }


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/22 15:07:00
     
     GoogleAdSense水瓶座1983-2-19
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DOM/SAX/XPath 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/8/12 22:59:48

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    46.875ms