问:怎样才能将XML文件导入SQL Server 2000? 答:将XML文件导入SQL Server有若干种方法,这里提供其中的3种:
大容量装载COM接口。如果需要将文档的实体和属性析取到关系表中,最快的方法就是使用SQL Server 2000 Extensible Markup Language 3.0 Service Pack 1(SQLXML 3.0 SP1)提供的大容量装载COM接口。大容量状态COM接口包含在SQLXML 3.0 SP1的免费下载中。
textcopy.exe命令行实用工具。如果不希望将文档的实体和属性析取到关系表中,您可以使用textcopy.exe命令行实用工具。Textcopy.exe是将文本和image数据类型从单一服务器行或列移入或移出的优秀工具。
数据转换服务(DTS)。如果XML文档很简单,您可以使用DTS将信息逐行析取到表中。这一方法要求您将XML文件定义为输入数据源,将数据库表定义为输出数据源,并编写ActiveX脚本剖析"<"和">"方式的字符输入,以析取实体、属性及其值。
要导入的Xml文件: 复制代码 代码如下: <?xml version="1.0" encoding="gb2312"?> <Tbl_UpdateLogs> <Table> <id>32</id> <title>新增执法机构页面</title> <content>qqqqqq</content> <module>组织机构</module> <updateTime>2009-07-31T00:00:00+08:00</updateTime> <operator>王永刚</operator> </Table> <Table> <id>33</id> <title>执法人员资格页面</title> <content>大幅度放到大幅度放到</content> <module>组织机构</module> <updateTime>2009-07-29T00:00:00+08:00</updateTime> <operator>王永刚</operator> </Table> <Table> <id>34</id> <title>222221</title> <content>dfdwdd</content> <module>qwqwq</module> <updateTime>2009-07-29T00:00:00+08:00</updateTime> <operator>wyg</operator> </Table> <Table> <id>35</id> <title>qq</title> <content>fjdldldsss</content> <module>qqqqqqq</module> <updateTime>2009-07-30T00:00:00+08:00</updateTime> <operator>wyg</operator> </Table> <Table> <id>36</id> <title>2009222</title> <content>ddddd</content> <module>22</module> <updateTime>2009-07-31T00:00:00+08:00</updateTime> <operator>wyg</operator> </Table> <Table> <id>37</id> <title>1234455</title> <content>ddddddd</content> <module>22222</module> <updateTime>2009-07-31T00:00:00+08:00</updateTime> <operator>wyg</operator> </Table> </Tbl_UpdateLogs> /// <summary> /// 读取Xml文件,获得所有节点的Value值 /// </summary> /// <param name="fileName">Xml文件名</param> /// <param name="filePath">存放的路径</param> /// <param name="rootName">Xml根节点名称</param> /// <returns></returns> public void ImportXmlFile(string fileName,string filePath,string rootName) { string loadPath = HttpContext.Current.Server.MapPath(filePath + fileName); try { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(loadPath); //获取根节点<rootName>的所有子节点 XmlNodeList myNodeList = xmldoc.SelectSingleNode(rootName).ChildNodes; //遍历<根节点>的所有子节点 foreach (XmlNode myXmlNode in myNodeList) { XmlNodeList subNodeList = myXmlNode.ChildNodes; UpdateLogs updateLog = new UpdateLogs(); foreach (XmlNode subXmlNode in subNodeList) { switch (subXmlNode.Name) { case "id": //节点的名称,加这个条件是因为<!---->这些节点也会被读出来 updateLog.ID = int.Parse(subXmlNode.InnerText.Trim()); break; case "title": updateLog.Title = subXmlNode.InnerText.Trim(); break; case "content": updateLog.Content = subXmlNode.InnerText.Trim(); break; case "module": updateLog.Module = subXmlNode.InnerText.Trim(); break; case "updateTime": updateLog.UpdateTime = DateTime.Parse(subXmlNode.InnerText.Trim()); break; case "operator": updateLog.Operator = subXmlNode.InnerText.Trim(); break; default: break; } } if (isExstsById(updateLog.ID.ToString())) { UpdateLog(updateLog); } else { InsertLog(updateLog); } } File.Delete(loadPath); BindData(); ClientScript.RegisterStartupScript(typeof(string),"importLog","<script>alert('导入成功!');</script>"); } catch (Exception ex) { ExceptionManager.Handle(ex); } }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|