功能:将表数据生成XML文件,显示在浏览器上。
要求:
1、IE浏览器
2、IIS装好
3、SQL Server 2000装好(开始菜单中SQL Server 2000程序组中的"在 IIS 中配置 SQL XML 支持"工具项)
4、数据库新建一个数据库
5、"在 IIS 中配置 SQL XML 支持"工具项进入后,在默认网站中新建一个虚拟目录。
<常规> 添加虚拟目录名,最好和数据库名一致,本地路径是本地计算机上的一个目录
<安全性> 使用Windows集成身份验证方式
<数据源> 指定好要导出的服务器名和数据库名
<设置> 选择"允许 URL 查询"、"允许模板查询"、"允许 XPath"和"允许 POST"选项
<虚拟名称> template(可以是用户指定的任意名称)。在"类型"列表中,选择"模板"。输入路径(例如,C:\Inetpub\Wwwroot\nwind\template,假设与虚拟目录相关联的物理目录下有一个子目录 template,但并不检查该目录是否存在)。单击"保存"按钮保存虚拟名称。
在"虚拟名称"选项卡上,单击"新建"按钮以创建架构类型的虚拟名称。
在"虚拟名称"框内输入schema(可以是用户指定的任意名称)。在"类型"列表中,选择"架构"。输入路径(例如,C:\Inetpub\Wwwroot\nwind\schema,假设与虚拟目录相关联的物理目录下有一个子目录 schema)。单击"保存"按钮保存虚拟名称。
在"虚拟名称"选项卡上,单击"新建"按钮以创建模板和架构类型的虚拟名称。
在"虚拟名称"框内输入 dbobject(可以是用户指定的任意名称)。在"类型"列表中,选择 dbobject。单击"保存"按钮保存虚拟名称。
以上的路径不一定要这样的,这样只是为了便于认。只要是本地的目录都行。
在浏览器地址栏输入url有两种方法显示XML文件
一、地址栏输入 http://localhost/driver?sql=select fullname from person for xml auto&root=root
driver为虚拟目录名
&root=root这个要加上,因为没有顶级结点
二、地址栏输入 http://localhost/driver/template/Template.xml
template是模板类型的虚拟名称
Template.xml放在模板类型的虚拟目录里
Template.xml的内容:
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<myfilds>
<sql:query>
SELECT id,fullname
FROM person
FOR XML AUTO
</sql:query>
</myfilds>
</root>
//////////////////////////////////////////////////////////////////////////////
用于将一种格式的XML文件转换为另一种格式的XML文件
//////////////////////////////////////////////////////////////////////////////
<script type="text/javascript">
<!--
//将XML文件内容写入DOM对象中
function GetXmlSource(url)
{
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("GET",url,false);
xmlHttp.send(null);
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
var xmlSource = CreateXMLDOM();
xmlSource.load(xmlHttp.responseXML);
}
else
{
return null;
}
}
return xmlSource;
}
//用XSLT进行格式转换
function XMLChange(url,path)
{
var xmlSource = GetXmlSource(url);
var xmlTemplate = CreateXMLDOM();
xmlTemplate.load(path);
var xmlChange = CreateXMLDOM();
xmlChange.validateOnParse = true;
xmlChange.loadXML(xmlSource.transformNode(xmlTemplate));
xmlChange.save("D:\\wwwroot\\XmlChange\\XSLTemplate\\Test.xml");
}
//创建DOM对象
function CreateXMLDOM()
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
return xmlDoc;
}
-->
</script>