以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML 与 数据库 』  (http://bbs.xml.org.cn/list.asp?boardid=17)
----  大家用什么方法从数据库中提取数据转xml?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=17&rootid=&id=30645)


--  作者:shiyuan
--  发布时间:4/15/2006 10:18:00 PM

--  大家用什么方法从数据库中提取数据转xml?
用XML作为中间件来实现异构数据库的整合似乎是目前讨论的比较热的问题之一,碰巧兄弟我的毕业设计也是研究这个项目。我习惯用.NET编程,但是我发现用.NET仅仅实现从数据库中导出数据存放为xml文件就有许许多多的方法,目前我所考虑到的是检索数据库,用dataset存放,然后用dataset里的writexml和writexmlschema方法分别生成存放数据的xml文件和存放表结构的xml schema文件。由于我是个新手,所以许多地方还有疑惑,能否请大家来谈谈有什么好的方法来从数据库中导出数据生成xml文件?真希望一些做类似研究的朋友能一起来探讨探讨。
--  作者:geochenyj
--  发布时间:4/18/2006 3:18:00 PM

--  
哥们,我也遇到了同样的问题,希望一起讨论,我的联系方式QQ:435448354 msn:geochenyj@hotmail.com
--  作者:nws_yjj
--  发布时间:7/11/2006 10:03:00 AM

--  
也是阿
--  作者:SATOKO2006
--  发布时间:7/11/2006 1:45:00 PM

--  
用Altova MapForce不是挺好吗?
--  作者:losc
--  发布时间:7/30/2006 7:28:00 AM

--  
where i can download it?
--  作者:supercatlv
--  发布时间:8/8/2006 10:08:00 AM

--  
俺没用过,想多知道一些
--  作者:Prentice2000
--  发布时间:8/19/2006 10:47:00 PM

--  
小弟写了一个程序,Java+JDOM将SQL Server中的数据查询结果转化为XML形式,数据库查询结果的一个元组的属性转变为XML的格式,代码如下:
import org.jdom.*;
import org.jdom.output.*;
import java.sql.*;
import java.io.*;

public class GenerateXMLView {
    
    /** Creates a new instance of GenerateXMLView */
    public GenerateXMLView() {
    }
    public static void main(String[] args) throws Exception {
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
        String url ="jdbc:microsoft:sqlserver://localhost:1433;databaseName=Collage;selectMethod=cursor;";
        Connection conn = DriverManager.getConnection(url, "SA", "");
        PreparedStatement pstmt = conn.prepareStatement(
                "select Student.Sno,Student.Sname,Course.Cno,Course.Cname,SC.Grade from Student,Course,SC where SC.Sno=Student.Sno and SC.Cno=Course.Cno order by Student.Sno",
                ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
        ResultSet rs = pstmt.executeQuery();
        ResultSetMetaData rmd = rs.getMetaData();
        Document document = new Document(new Element("ResultSet")); //创建文档ROOT元素
        int colcount = rmd.getColumnCount();
        while (rs.next()) {
            Element RowElement = new Element("ROW");
            
            for (int i = 1; i <= colcount; i++) {
                Element TempElement=new Element(rmd.getColumnName(i).toString());
                TempElement.setText(rs.getString(i));
                RowElement.addContent(TempElement);
            }
            document.getRootElement().addContent(RowElement);
        }
        rs.close();
        pstmt.close();
        conn.close();
        XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat()); //格式华输出,产生缩进和换行
        
        Format format = outp.getFormat();
        format.setEncoding("GB2312"); //设置语言
        format.setExpandEmptyElements(true); //设置输出空元素为<sample></sample>格式
        outp.setFormat(format);
        
        outp.output(document, new FileOutputStream("ResultSet.xml")); //输出XML文档
        System.out.print("XML 文档生成完毕!");
    }
}
我写的这个程序在NetBeans上运行成功,注:运行的时候不要忘记添加SQL Server 2000的JDBC驱动程序
以后打算做成GUI形式的,类似于查询分析器,将查询的结果直接生成XML格式
也可以参考一下这个文章
《Efficiently Publishing Relational Data as XML Documents》


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms