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

    >> 本版讨论DOM, SAX, XPath等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DOM/SAX/XPath 』 → 请教如何在内存中,完成xslt转换动态生成的xml,谢谢 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5115 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 请教如何在内存中,完成xslt转换动态生成的xml,谢谢 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     xiaomu417 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:60
      门派:XML.ORG.CN
      注册:2004/12/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给xiaomu417发送一个短消息 把xiaomu417加入好友 查看xiaomu417的个人资料 搜索xiaomu417在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看xiaomu417的博客楼主
    发贴心情 请教如何在内存中,完成xslt转换动态生成的xml,谢谢

    初学xml xslt,我现在用jdom生成xml,然后存储在硬盘中,在进行转换,输出。以下为代码,请问这个过程如何在内存中完成,创建即存在,不调用了则消失。或者说是对动态创建的Document对象进行操作。谢谢
    public class DB {
     
     public static void returnValue() {
      Connection conn = null;
      Statement stmt = null;
      ResultSet rs = null;
      
      try{
       Class.forName("com.mysql.jdbc.Driver");
       String url="jdbc:mysql://localhost:3306/test";
       conn=DriverManager.getConnection(url, "root", "root");
         
       stmt = conn.createStatement();
       String sql="select * from student";   //定义查询的SQL语句
       rs=stmt.executeQuery(sql);   //执行查询
       
       Document doc = new Document();//创建文档
       org.jdom.ProcessingInstruction pi = new ProcessingInstruction("xml-stylesheet","href=\"http://localhost:8081/xmltest/student.xsl\" type=\"text/xsl\"");
       doc.addContent(pi);
       
       Element eRoot = new Element("students");
       doc.setRootElement(eRoot);           
       
       ResultSetMetaData rsmd = rs.getMetaData(); //获取字段名
       
       int numberOfColumns = rsmd.getColumnCount(); //获取字段数
       int i=0;
       while(rs.next()){ //将查询结果取出
         Element eltChild = new Element("student"); //创建元素 生成JDOM树
         eRoot.addContent(eltChild);
       
         for (i=2; i<=numberOfColumns;i++)
          {   String value = rs.getString(i) ;
                       //   代码转换
              System.out.println(value);
              Element eValue = new Element(rsmd.getColumnName(i)).setText(value);
              eltChild.addContent(eValue);
          }
       }
       rs.close(); //关闭结果集
       stmt.close(); //关闭statement
       conn.close(); //关闭连接
       
       Format fmt = Format.getPrettyFormat();
       fmt.setEncoding("gb2312");
       fmt.setIndent("    ");
       
       
       XMLOutputter outp = new XMLOutputter();
       outp.setFormat(fmt);
       outp.output(doc, new FileOutputStream("D:\\tomcat\\apache-tomcat-6.0.13\\webapps\\xmltest\\student.xml")); //输出XML文档
       System.out.println("XML 文档生成完毕!");

    下面是转换页面:
    <%@   page   import="java.io.*"%>  
      <%@   page   import="org.jdom.*"%>  
      <%@   page   import="org.jdom.input.*"%>  
      <%@   page   import="org.jdom.output.*"%>  
      <%@   page   import="org.jdom.transform   .*"%>  
      <%@   page   import="javax.xml.transform.*"%>  
      <%@   page   import="javax.xml.transform.stream.*"%>  
    <%@ page import = "bean.DB" %>
       
      <%  

      DB db = new DB();
      db.returnValue();
      
      File   _xslFileName=new   File("D:\\tomcat\\apache-tomcat-6.0.13\\webapps\\xmltest\\student.xsl");  
      File   _xmlFileName=new   File("D:\\tomcat\\apache-tomcat-6.0.13\\webapps\\xmltest\\student.xml");  
       
      SAXBuilder   _builder=new   SAXBuilder();  
      Document   _xmlDOC=_builder.build(_xmlFileName);  
       
      TransformerFactory   _transFactory   =   TransformerFactory.newInstance();  
      Source   _xslSource   =   new   StreamSource(_xslFileName);  
      Transformer   _transFormer=_transFactory.newTransformer(_xslSource);  
       
      JDOMResult   _out   =   new   JDOMResult();  
      _transFormer.transform(new   JDOMSource(_xmlDOC),_out);  
       
      XMLOutputter   _outputter=new   XMLOutputter();  
      _outputter.output(_xmlDOC,response.getWriter());  
      %>


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/7/11 10:58:00
     
     xiaomu417 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:60
      门派:XML.ORG.CN
      注册:2004/12/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给xiaomu417发送一个短消息 把xiaomu417加入好友 查看xiaomu417的个人资料 搜索xiaomu417在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看xiaomu417的博客2
    发贴心情 
    已搞定 !
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/7/12 14:38:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DOM/SAX/XPath 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/1/15 16:47:14

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

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