21

在 Oracle 或 PostgreSQL 等 DBMS 中,有从数据库生成 XML 数据的函数: http: //docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb13gen.htmhttp://www.postgresql。 org/docs/current/static/functions-xml.html#AEN15086

我的问题是 SQLite 数据库中有类似的东西吗?可能有一些额外的工具、库甚至标准工具用于此目的?

4

5 回答 5

1

如果您使用的是C#.NET,则可以有两种方法。

  1. 您可以将数据放入数据集并使用 .WriteXml() 方法写入 xml 文件。

    var sqc = new SqlConnection(ConfigurationManager.ConnectionStrings["AddsConnectionString"].ConnectionString);       
    
    sqc.Open();
    
    var q = "select * from adv";
    
    var sqd = new SqlDataAdapter(q, sqc);
    
    var ds = new DataSet();
    
    sqd.Fill(ds,"adv");
    
    ds.WriteXml("d:/data.xml");
    

不要忘记包含 System.Xml

  1. 或者,您可以使用Linq
于 2013-07-31T12:19:27.677 回答
1

答案是“是和不是”。它不一样,但 SQLite 在这方面实际上是相当有能力的。但是,您必须推出自己的解决方案。

要了解如何做到这一点,您必须了解 SQLite 与 PostgreSQL 或 Oracle 等数据库的不同之处。后两者是通过套接字(网络或 UNIX)与客户端通信的服务器,而 SQLite 是一个使用进程内内存与应用程序的其余部分通信的库。SQLite 没有特定的 XML 工具,但它有基础设施供您创建自己的。鉴于您没有指定您正在使用的语言(这使得嵌入式数据库方法不同),我将讨论如何考虑它,然后提供指向 Python 和 C API 文档的指针。

在 PostgreSQL 中,您通过提供在调用时运行的函数来扩展 SQL。它们位于后端,并在调用时被实例化。在 SQLite 中,您的进程与后端相同,因此您在库中拥有的任何内容都与 SQLite 处于相同的进程中。这意味着您可以以任意方式将 SQL 扩展为一种语言,只需告诉 SQLite 在看到它不理解的函数时要调用什么函数。因此,您可以通过定义函数调用然后将它们注册到 SQLite 来构建它。

Python 文档提供了一个完整的工作示例,说明如何使用 SQLite 注册 Python 函数,以便在调用时生成 md5hash。相同的方法可用于生成整个 XML 文档。我首先注意到它,因为这提供了一个很好的例子来说明你可以做什么。

SQLite 文档从 C 的角度详细介绍了这一点。从这里您可以定义您自己的聚合、您自己的函数等等。因此,您拥有此类所需的所有构建块,只是没有提供最后一英里。

于 2017-09-21T15:17:15.077 回答
1

有一个qt sqlite驱动插件,所以如果你决定自己制作转换程序,那么你可以通过c++和qt轻松完成。加载驱动程序,打开数据库,通过查询提取您想要的任何信息,以您想要的任何格式将它们输出到文件。

否则,有人已经做了一个转换程序: Video with exporting of db to any format

有很多可能的方法来解决这个问题。

于 2017-09-21T08:15:26.593 回答
1

你可以下载 SQLite Studio。并直接将表或数据库导出到 xml 文件。在此处输入图像描述

于 2017-08-17T12:04:13.033 回答
1

您也可以下载 SQlite 数据库浏览器,然后打开您的数据库。之后将每个表导出到 csv/html

于 2017-08-01T16:38:58.850 回答