我有很多数据表,我需要对表(它们的数据)运行诊断程序,因此,我想将数据插入XMLspy
,并为表生成xml文件。可能吗 ?也许与Oxygen
?
我试图寻找可以执行以下操作的特定教程,但找不到任何:
以一个简单的表格为例,其中包含几行和几行。列,所以我想把它的值
在XMLspy中,然后生成XML文件。
是否可以使用该程序输入值并最终生成
一个XML文件?如果是这样,你能指导我到网站/教程吗?
此致
答案 0 :(得分:1)
现在,许多SQL引擎都能够自动生成格式化为XML的查询结果。例如,Microsoft SQL Server提供了一种非常简单的模式,下面是Online Books的摘录。
SELECT Cust.CustomerID,
OrderHeader.CustomerID,
OrderHeader.SalesOrderID,
OrderHeader.Status,
Cust.CustomerType
FROM Sales.Customer Cust, Sales.SalesOrderHeader OrderHeader
WHERE Cust.CustomerID = OrderHeader.CustomerID
ORDER BY Cust.CustomerID
FOR XML AUTO
生成的XML可能如下所示:
<Cust CustomerID="1" CustomerType="S">
<OrderHeader CustomerID="1" SalesOrderID="43860" Status="5" />
<OrderHeader CustomerID="1" SalesOrderID="44501" Status="5" />
<OrderHeader CustomerID="1" SalesOrderID="45283" Status="5" />
<OrderHeader CustomerID="1" SalesOrderID="46042" Status="5" />
</Cust>
...
您可以编写脚本,根据需要处理XML片段,或任何其他附加逻辑。
如果你使用脚本,另一个涉及一些脚本(Windows上的C#)的简单方法是使用某种代表所需数据的查询加载ADO.NET DataSet,然后将ADO.NET序列化为一个XML文件。
这个脚本:
using System;
using System.Data;
using System.Data.OleDb;
class Script
{
public static void Main()
{
using(OleDbConnection cn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=NORTHWIND;Integrated Security=SSPI"))
{
using (OleDbDataAdapter adapter = new OleDbDataAdapter("select EmployeeID, LastName, FirstName, Title from Employees", cn))
{
DataSet d = new DataSet("Customers");
adapter.Fill(d, "Customer");
d.WriteXml(@"c:\temp\MyXml.xml", XmlWriteMode.IgnoreSchema);
}
}
}
}
将产生具有以下结构的XML:
如果您的数据库不支持此功能,或者您更喜欢其他解决方案,并且如果您的XML必须遵循规定的XSD ,那么我可以代表QTAssistant(我是与之相关的)具有此功能已有相当长的一段时间;它被称为XML Builder,它基本上使用XSD和一组SQL stataments之间的XML映射,其结构与XML文档的层次结构特性相匹配。
如果您决定试用,则必须先注册才能下载该工具;嵌入式帮助有关于如何设置演示的分步指南,因为它带有一个正常运行的示例,模块&gt; XML Builder&gt;样品&gt;递归示例主题。该示例需要一个版本的Microsoft SQL Server,但它可以与您的计算机上安装了OLEDB提供程序的任何其他数据库一起使用,包括Excel或Access。
交互式时,这就是加载样本的样子: