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

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

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

    posts - 37, comments - 8, trackbacks - 0, articles - 0
    1、jdom的基礎(chǔ)知識(shí)及包與類的說明,可到網(wǎng)上搜索,也可查看jdom api,這里不再羅列,提供一個(gè)地方:http://www.java2000.net/p122。下載jdom.jar的地址:http://www.jdom.org/dist/binary/
    2、使用JDOM創(chuàng)建和讀取XML文件
    一般步驟:
    1)建立元素及其內(nèi)容:建立一個(gè)元素作為根結(jié)點(diǎn),建立根元素的子結(jié)點(diǎn)并加入到根結(jié)點(diǎn),子結(jié)點(diǎn)若有子結(jié)點(diǎn)就建立它們并加入到其父結(jié)點(diǎn)。也可以橫向一層層地建立,只要有條理即可。
    2)以根結(jié)點(diǎn)為根元素建立文件(Document對(duì)象)。
    3)建立XML文件。
    4)使用org.output包中的方法建立輸出流對(duì)象
    5)使用輸出流對(duì)象的output方法將Document對(duì)象輸出到文件中,完成XML文件的建立。
    6)實(shí)例slDisplay.jsp代碼如下:
    <%@page contentType="text/html;charset=gb2312" %>
    <%@page import="org.jdom.*,org.jdom.input.*,org.jdom.output.XMLOutputter,
    java.io.*,org.jdom.output.Format,java.util.*"
    %>
    <html>
    <head>
    <title>JDOM讀取XML文件實(shí)例</title>
    </head>
    <body>
    <%
        Element root,member,name,sex,ern;
        
    //建立根元素
        root
    =new Element("文學(xué)沙龍");
        
    //建立根元素的第一個(gè)元素
        member
    =new Element("成員");
        name
    =new Element("姓名");
        sex
    =new Element("性別");
        ern
    =new Element("時(shí)代");
        name.setText(
    "李白");
        sex.setText(
    "");
        ern.setText(
    "");
        member.addContent(name);
        member.addContent(sex);
        member.addContent(ern);
        root.addContent(member);
        
    //建立根元素的第二個(gè)元素
        member
    =new Element("成員");
        name
    =new Element("姓名");
        sex
    =new Element("性別");
        ern
    =new Element("時(shí)代");
        name.setText(
    "蘇軾");
        sex.setText(
    "");
        ern.setText(
    "北宋");
        member.addContent(name);
        member.addContent(sex);
        member.addContent(ern);
        root.addContent(member);
        
    //建立根元素的第三個(gè)元素
        member
    =new Element("成員");
        name
    =new Element("姓名");
        sex
    =new Element("性別");
        ern
    =new Element("時(shí)代");
        name.setText(
    "李清照");
        sex.setText(
    "");
        ern.setText(
    "南宋");
        member.addContent(name);
        member.addContent(sex);
        member.addContent(ern);
        root.addContent(member);
        
    //以根元素建立文件
        Document doc
    =new Document(root);
        
    //使用相對(duì)路徑,默認(rèn)到tomcat目錄下
        
    //FileOutputStream f=new FileOutputStream("salon.xml");
        
    String strDirPath = new File(request.getSession().getServletContext().getRealPath(request.getContextPath())).getParent();//絕對(duì)路徑
        FileOutputStream f
    =new FileOutputStream(strDirPath+"/salon.xml");
        
    //建立輸出流
        XMLOutputter out1
    =new XMLOutputter();
        
    //格式化文件
        Format format
    =Format.getPrettyFormat();
        format.setEncoding(
    "gb2312");
        out1.setFormat(format);
        
    //將文件輸出到XML文件中
        out1.output(doc,f);
    %>
    <table border="1" align="center">
    <caption>文學(xué)沙龍</caption>
    <tr>
        
    <td>姓名</td>
        
    <td>性別</td>
        
    <td>時(shí)代</td>
    </tr>
    <%
      
    //獲取數(shù)據(jù)
      SAXBuilder builder
    =new SAXBuilder();//創(chuàng)建對(duì)象
      
    //建立Document對(duì)象
      
    //可以使用strDirpath,也中以重新獲取絕對(duì)路徑
      
    //Document readDocument=builder.build("file:\\"+strDirPath+"/salon.xml");
      Document readDocument
    =builder.build("file:\\"+pageContext.getServletContext().getRealPath("salon.xml"));  
      
    //得到根元素
      Element rootElement
    =readDocument.getRootElement();
      
    //得到根元素列表,實(shí)際上就是user元素列表
      List list
    =rootElement.getChildren();
      
    //---輸出數(shù)據(jù)---
      
    for(Iterator i=list.iterator();i.hasNext();){
          Element current
    =(Element)i.next();
          out.print(
    "<tr>");
          out.println(
    "<td>"+current.getChildText("姓名")+"</td>");
          out.println(
    "<td>"+current.getChildText("性別")+"</td>");
          out.println(
    "<td>"+current.getChildText("時(shí)代")+"</td>");
          out.println(
    "</tr>");
      }
    %>
    </table>
    </body>
    </html>
    2、使用JDOM修改XML文件:slUpdate.jsp代碼如下:
    <%@page contentType="text/html;charset=gb2312" %>
    <%@page import="org.jdom.*,org.jdom.input.*,org.jdom.output.XMLOutputter,
    java.io.*,org.jdom.output.Format,java.util.*"
    %>
    <html>
    <head>
    <title>JDOM修改XML文件</title>
    </head>
    <body>
    <%
    SAXBuilder sb
    =new SAXBuilder();//建立一個(gè)解析器
    //構(gòu)造一個(gè)Document,讀入salon.xml文件的內(nèi)容
    Document doc
    =sb.build(new FileInputStream(pageContext.getServletContext().getRealPath("salon.xml"))); 
    Element root
    =doc.getRootElement();
    List salons
    =root.getChildren();
    //得到根元素的第一個(gè)子元素和后者的“姓名”子元素
    Element salon
    =(Element)salons.get(0);
    Element name
    =(Element)salon.getChild("姓名");
    //“姓名”添加一個(gè)屬性
    Attribute a
    =new Attribute("評(píng)價(jià)","詩仙");
    name.setAttribute(a);

    //更改根元素的第二個(gè)元素的子元素"時(shí)代".
    salon
    =(Element)salons.get(1);
    Element ern
    =salon.getChild("時(shí)代");//得到指定的子元素
    ern.setText(
    "");

    //替換根元素的第三個(gè)元素,但破壞了格式,這里沒有調(diào)整
    salon
    =(Element)salons.get(2);
    salon.removeContent();
    name
    =new Element("姓名");
    Element sex
    =new Element("性別");
    ern
    =new Element("時(shí)代");
    name.setText(
    "卓文君");
    sex.setText(
    "");
    ern.setText(
    "");
    salon.addContent(name);
    salon.addContent(sex);
    salon.addContent(ern);

    //文件輸回到XML文件中
    XMLOutputter out1
    =new XMLOutputter();
    out1.output(doc,
    new FileOutputStream(pageContext.getServletContext().getRealPath("salon.xml")));
    %>
    <table border="1" align="center">
    <caption>文學(xué)沙龍</caption>
    <tr>
        
    <td>姓名</td>
        
    <td>性別</td>
        
    <td>時(shí)代</td>
    </tr>
    <%
      
    //獲取數(shù)據(jù)
      SAXBuilder builder
    =new SAXBuilder();//創(chuàng)建對(duì)象
      
    //建立Document對(duì)象
      
    //可以使用strDirpath,也中以重新獲取絕對(duì)路徑
      
    //Document readDocument=builder.build("file:\\"+strDirPath+"/salon.xml");
      Document readDocument
    =builder.build("file:\\"+pageContext.getServletContext().getRealPath("salon.xml"));  
      
    //得到根元素
      Element rootElement
    =readDocument.getRootElement();
      
    //得到根元素列表,實(shí)際上就是user元素列表
      List list
    =rootElement.getChildren();
      
    //---輸出數(shù)據(jù)---
      
    for(Iterator i=list.iterator();i.hasNext();){
          Element current
    =(Element)i.next();
          out.print(
    "<tr>");
          out.println(
    "<td>"+current.getChildText("姓名")+"</td>");
          out.println(
    "<td>"+current.getChildText("性別")+"</td>");
          out.println(
    "<td>"+current.getChildText("時(shí)代")+"</td>");
          out.println(
    "</tr>");
      }
    %>
    </table>
    </body>
    </html>
    3、使用JDOM修改XML文件:data.jsp代碼如下:
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="javax.xml.parsers.*,org.jdom.*,org.jdom.output.XMLOutputter,java.io.*,java.util.*, java.sql.*,org.jdom.output.Format"%>
    <html>
    <head>
    <title> JDOM把數(shù)據(jù)庫(kù)的表轉(zhuǎn)化成XML文件示例</title>
    </head>
    <body>
    JDOM把數(shù)據(jù)庫(kù)的表轉(zhuǎn)化成XML文件
    <br>
    <%
    //建立數(shù)據(jù)庫(kù)連接并獲取學(xué)生表的記錄集和結(jié)構(gòu)
    Class.forName(
    "sun.jdbc.odbc.JdbcOdbcDriver"); //加載橋驅(qū)動(dòng)程序
    Connection con
    =DriverManager.getConnection("jdbc:odbc:Demo"); //建立數(shù)據(jù)庫(kù)連接
    Statement stmt
    =con.createStatement();
    ResultSet rs
    =stmt.executeQuery("select * from information"); //獲取結(jié)果集
    rs.next();
    out.println(rs.getString(
    "字段1"));
    //獲得結(jié)果集的結(jié)構(gòu)
    ResultSetMetaData rsmd
    =rs.getMetaData();
    //獲得結(jié)果集的列數(shù),也就是數(shù)據(jù)項(xiàng)的數(shù)目
    int numcols=rsmd.getColumnCount();
    //記錄集到XML文件的轉(zhuǎn)換
    Element root,ele,name; 
    //定義Element類的對(duì)象根元素(root)
    root
    =new Element("student"); //建立根元素

    //循環(huán), 將結(jié)果集中的每一條記錄轉(zhuǎn)換成一個(gè)元素(標(biāo)記名為“第…個(gè)記錄”)
    while(rs.next())
    {ele
    =new Element(""+rs.getRow()+"條紀(jì)錄"); //設(shè)置元素,名為“第…個(gè)記錄”
    out.println(ele);

    for(int i=1;i<=numcols;i++//循環(huán),將一條記錄中的每個(gè)字段轉(zhuǎn)換成一個(gè)元素
    {
    // getColumnLabel(i) 獲取第i個(gè)列的字段名(列數(shù)從0開始)。
    //out.println(rs.getString(i));
    name
    =new Element(rsmd.getColumnLabel(i)); //以獲得的字段名為標(biāo)記名設(shè)置元素
    name.setText(rs.getString(i)); 
    //獲取字段內(nèi)容作為字段名元素的內(nèi)容
    ele.addContent(name); 
    //將字段名元素置為記錄的子元素

    }
    root.addContent(ele); 
    //將記錄元素置為根元素的子元素
    }
    Document doc
    =new Document(root); //以根元素建立文檔
    FileOutputStream f
    =new FileOutputStream(pageContext.getServletContext().getRealPath("DB.xml"));
    XMLOutputter out1
    =new XMLOutputter(); //將文檔輸出形成XML文件
    Format format
    =Format.getPrettyFormat(); //格式化文檔
    format.setEncoding(
    "gb2312"); //由于默認(rèn)的編碼是utf-8,中文將顯示為亂碼,所以設(shè)為gbk
    out1.setFormat(format);
    out1.output(doc,f);
    rs.close(); con.close(); 
    //關(guān)閉各個(gè)對(duì)象
    out.println(
    "數(shù)據(jù)庫(kù)表Information已成功地轉(zhuǎn)化成XML文件DB.xml!");
    %>
    </body>
    </html>
    注:這里使用的數(shù)據(jù)庫(kù)文件為Acces的,連接方式為ODBC+數(shù)據(jù)源方式,使用的表為information,可以建立這樣一個(gè)表,內(nèi)容不限,配置數(shù)據(jù)源即可。當(dāng)然可以連接其他數(shù)據(jù)庫(kù),這里只是圖個(gè)方便。
    主站蜘蛛池模板: 色九月亚洲综合网| 亚洲一区二区无码偷拍| 91大神亚洲影视在线| 亚洲六月丁香六月婷婷蜜芽| 亚洲国产日韩精品| 日韩毛片在线免费观看| 久久er国产精品免费观看8| 99久热只有精品视频免费看| 久久精品无码一区二区三区免费 | 99热这里只有精品6免费| 国产免费看JIZZ视频| 国产大片91精品免费观看男同| 亚洲真人日本在线| 亚洲黄色在线观看网站| 亚洲精品自偷自拍无码| 久久久久久av无码免费看大片| 中文字幕成人免费视频| 日韩成人免费aa在线看| 国产国拍精品亚洲AV片| 亚洲毛片一级带毛片基地| 久久亚洲精品高潮综合色a片| 最新亚洲成av人免费看| 人禽杂交18禁网站免费| 亚洲自偷自偷在线制服 | 亚洲熟妇久久精品| 国产在线国偷精品免费看| 又黄又爽又成人免费视频| 日韩亚洲国产二区| 亚洲视频在线观看地址| 男女猛烈xx00免费视频试看| 日韩人妻无码精品久久免费一| 四虎永久在线精品免费影视| 无码欧精品亚洲日韩一区| 蜜芽亚洲av无码一区二区三区| 久久久精品免费国产四虎| 在线免费一区二区| 亚洲人成依人成综合网| 污污视频网站免费观看| 久久www免费人成看片| 亚洲最大av无码网址| 国产成人精品日本亚洲直接|