<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Edzy_Java

      BlogJava :: 首頁 ::  ::  ::  :: 管理 ::
      58 隨筆 :: 12 文章 :: 11 評論 :: 0 Trackbacks
    ????最近一直在看XML,才發現XML真是個好東東,有了它,交換數據變得前所未有的方便,今天做了我的第一個XML應用,呵呵,一個基于XML技術的留言簿。
    ????放棄了數據庫,而直接使用XML來存儲信息,讀取后通過XSLT轉換成HTML直接顯示,感覺方便極了。
    ????開發工具采用Eclipse作為Java IDE,XML操作使用JDOM,XML文件編輯使用Oxygen XML Editor(很好用的XML編輯器,純JAVA)。
    ????這是guestbook.xml,所有的留言都存儲在這里。
    <?xml?version="1.0"?encoding="gb2312"?>
    <!DOCTYPE?guestbook?SYSTEM?"file:/F:/site/xmlGuestbook/guestbook.dtd">
    <?xml-stylesheet?type="text/xsl"?href="guestbook.xsl"?>
    <guestbook>
    ????<message>
    ????????<name>Vince?Carter</name>
    ????????<ip>202.113.66.66</ip>
    ????????<content>a?good?site,do?you?think?so?</content>
    ????</message>
    ????<message>
    ????????<name>Antony?Walker</name>
    ????????<ip>202.113.22.123</ip>
    ????????<content>VC?isn't?right?here,you?should?be?traded.</content>
    ????</message>
    </guestbook>

    ????這是DTD文件,直接用Oxygen XML Editor生成的,很方便。

    <!ELEMENT?message?(#PCDATA?|?name?|?ip?|?content)*>
    <!ELEMENT?content?(#PCDATA)>
    <!ELEMENT?guestbook?(#PCDATA?|?message)*>
    <!ELEMENT?ip?(#PCDATA)>
    <!ELEMENT?name?(#PCDATA)>

    ????這是XSLT文件:

    <?xml?version="1.0"?>
    <xsl:stylesheet?xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template?match="/">
    <html>
    <body>
    <table?border="1"?bgcolor="yellow">
    <tr>
    <th>Name</th>
    <th>IP</th>
    <th>Content</th>
    </tr>
    <xsl:for-each?select="guestbook/message">
    <tr>
    <td><xsl:value-of?select="name"/></td>
    <td><xsl:value-of?select="ip"/></td>
    <td><xsl:value-of?select="content"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

    ????采用表格的形式組織,清晰易懂。下面是JAVA代碼。

    /*
    ?*?創建日期?2005-2-15
    ?*/
    package?com.tiantian.xmlguestbook;//com.tiantian

    import?org.jdom.Document;
    import?org.jdom.Element;
    import?org.jdom.JDOMException;
    import?org.jdom.input.SAXBuilder;
    import?org.jdom.output.*;
    import?java.io.*;

    /**
    ?*?@author?tiantian
    ?*/
    public?class?XMLguestbookBean?{

    ????public?static?void?main(String[]?args)?{
    ????????XMLguestbookBean?exam?=?new?XMLguestbookBean();//聲明XMLguestbookBean的一個實例
    ????????exam.addmessage("james",?"202.11.223.22",?"hahah");//增加一個留言,測試
    ????}

    ????public?Element?root?=?null;//定義根

    ????public?XMLguestbookBean()?{
    ????????//空的構造函數
    ????}

    ????private?void?addmessage(String?name,?String?ip,?String?content)?{
    ????????try?{
    ????????????SAXBuilder?sb?=?new?SAXBuilder();
    ????????????Document?doc?=?sb.build("guestbook.xml");
    ????????????root?=?doc.getRootElement();//取得根元素
    ????????????Element?newMessage?=?new?Element("message");
    ????????????Element?newName?=?new?Element("name");
    ????????????Element?newContent?=?new?Element("content");
    ????????????Element?newIp?=?new?Element("ip");
    ????????????newName.setText(name);?//填入名字
    ????????????newContent.setText(content);//填入設置
    ????????????newIp.setText(ip);//填入IP
    ????????????newMessage.addContent(newName);//添加名字到message
    ????????????newMessage.addContent(newIp);//添加ip地址到message
    ????????????newMessage.addContent(newContent);//添加留言內容到message
    ????????????root.addContent(newMessage);//把message添加到根上
    ????????????Format?format?=?Format.getCompactFormat();
    ????????????format.setEncoding("gb2312");?//設置xml文件的字符為gb2312
    ????????????format.setIndent("????");
    ????????????XMLOutputter?XMLOut?=?new?XMLOutputter(format);//在元素后換行,每一層元素縮排四格
    ????????????XMLOut.output(doc,?new?FileOutputStream("guestbook.xml"));//輸出到文件
    ????????}?catch?(FileNotFoundException?e)?{
    ????????????//?文件未找到
    ????????????e.printStackTrace();
    ????????}?catch?(JDOMException?e)?{
    ????????????//?JDOM異常
    ????????????e.printStackTrace();
    ????????}?catch?(IOException?e)?{
    ????????????//?IO異常
    ????????????e.printStackTrace();
    ????????}

    ????}
    }

    ????使用了Eclispe的格式化之后漂亮多了,呵呵。在Jsp/Servlet中只需用調用這個bean就行了,顯示的時候直接引用XML文件即可,是不是比上一個JSP實現簡單清晰多了呢?

    posted on 2006-11-15 18:20 lbfeng 閱讀(447) 評論(1)  編輯  收藏 所屬分類: XML技術雜談

    評論

    # re: JSP的留言簿---XML實現 2008-02-19 11:15 jinyi521
    XML文件編輯使用Oxygen XML Editor(很好用的XML編輯器,純JAVA)。

    請教一下
    Oxygen XML Editor這個插件怎么用?

    有沒有 使用說明或者幫助 最好是中文的 有的話給我發一份
    我的郵箱 : jun8092191@163.com

    在這 先謝謝 了   回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 大学生a级毛片免费观看| 国产成年无码久久久免费| 国产成人亚洲精品电影| 日本永久免费a∨在线视频| 成人免费一区二区三区| 在线看无码的免费网站| 成年女人男人免费视频播放| 少妇亚洲免费精品| 精品久久久久久亚洲| 亚洲春色另类小说| 国产精品亚洲lv粉色| 国产在线观a免费观看| 国产成人免费在线| 午夜国产羞羞视频免费网站| 亚洲精品成人无码中文毛片不卡| 亚洲视频在线观看网站| 亚洲av第一网站久章草| 青青操在线免费观看| 18禁无遮挡无码网站免费| 亚洲伊人成无码综合网| 亚洲经典在线中文字幕| 狠狠综合亚洲综合亚洲色| 久久成人免费电影| 永久免费bbbbbb视频| 亚洲Av无码精品色午夜| 亚洲av午夜电影在线观看| 玖玖在线免费视频| 日本成人免费在线| 亚洲人成电影在在线观看网色| 亚洲成a∨人片在无码2023 | 91黑丝国产线观看免费| 亚洲精品动漫人成3d在线 | 久久久久久亚洲AV无码专区| 亚洲国产精品精华液| 国产精品99久久免费观看| 日本不卡视频免费| 亚洲人成影院在线| 日本免费精品一区二区三区 | 99视频免费播放| 亚洲av无码天堂一区二区三区 | 亚洲乱码中文字幕久久孕妇黑人|