xml文档存储过程

原创 2004年10月03日 15:34:00

通用的存储,来导入指定目录下的所有xml文档

create proc p_inport
@path nvarchar(1000)='d:/xml', --xml文件所在的目录
@fname nvarchar(1000)=''  --要导入的xml文件名,如果不指定,表示只导入今天的,如果为:%,则导入该目录下所有的文件,如果是其他,表示只导入指定的
as
DECLARE @idoc int,@doc varchar(8000)

if right(@path,1)<>'/' set @path=@path+'/'
if @fname='' set @fname=convert(char(8),getdate(),112)+'.xml'

--得到指定目录下的所有文件:
create table #t(fname varchar(260),depth int,isf bit)
insert into #t exec master..xp_dirtree @path,1,1

--定义处理的文件
declare tb cursor local for
select fn=@path+fname from #t
where isf=1 and fname like @fname

--导入处理
declare @fn varchar(2000)
create table #tb (doc varchar(8000))
open tb
fetch next from tb into @fn
while @@fetch_status=0
begin
 exec('bulk insert #tb from '''+@fn+'''')
 set @doc=''
 select @doc=@doc+doc from #tb

 --分析XML,导入表中
 EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
 insert table1
 SELECT * FROM OPENXML (@idoc, '/Database/Vehicle',1)
 with table1
 
 insert into table2
 SELECT * FROM OPENXML (@idoc, '/Database/Vehicle/Pictures/Picture',1)
 with(
  ExamineNumber Char(30) '/Database/Vehicle/@ExamineNumber',
  PictureFileName Char(50) '@PictureFileName'
 )
 
 insert into table3
 SELECT * FROM OPENXML (@idoc, '/Database/Vehicle/Drivers/Driver',1)
 with(
  ExamineNumber Char(30) '/Database/Vehicle/@ExamineNumber',
  DriverName Char(10),
  IDCard Char(20),
  Tel Char(50) '@TEL',
  Memo Char(200) '@MEMO'
 )

 EXEC sp_xml_removedocument @idoc 

 fetch next from tb into @fn
end
close tb
deallocate tb
go

【HTML/XML 6】XML文档的基本组成

导读:大致上,一个XML文档可以由三个部分组成,即声明区、定义区和文档主体区。在XML文档中,各个组成部分都包含特定的内容,有着不同的作用。本篇博客,通过分析上篇博客中的XML实例,来了解XML文档 ...
  • u013034889
  • u013034889
  • 2016年01月12日 23:00
  • 872

XML之Well-Formed文档规则

由于课程原因,近日粗略学习XML,载以博客是为担心忘记,以供日后复习之用。    XML标准中明确规定了XML文件应当遵守的规则,大致上分成基本规则和DTD(Document Type Definit...
  • qq_34992930
  • qq_34992930
  • 2017年02月28日 23:17
  • 144

xml学习(2)xml文档树结构图

XML 文档形成一种树结构 XML 文档必须包含根元素。该元素是所有其他元素的父元素。 XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。 所有元素均可拥有子元素: ...
  • yucihai
  • yucihai
  • 2013年11月20日 08:54
  • 1881

新建XML文档

    public bool CreateXML(string strXMLPath, string strXMLName, string[] strNode)    {        try   ...
  • myelse
  • myelse
  • 2009年04月01日 09:07
  • 324

XML那点事儿

一. XML简介      XML(Extensible Markup Language,可扩展标记语言)是一个用于构造其他语言的元语言。XML描述了创造这些语言的规则,每种语言都互不相同,但都使用标...
  • chosen0ne
  • chosen0ne
  • 2010年06月08日 21:04
  • 1211

获取xml文档中存储过程并执行(mysql)

xml.Load("sql.xml"); xml.ResetMainPos(); int i=0; while(xml.FindChildElem("sqls")) { xml.IntoElem()...
  • boxer2011111
  • boxer2011111
  • 2011年12月18日 19:59
  • 1065

存储过程使用sp_xml_preparedocument处理XML文档的方法

有时会在存储过程中处理一些XML格式的数据,所以会用到sp_xml_preparedocument,他可以将XML数据进行读取,然后使用 MSXML 分析器 (Msxmlsql.dll) 对其进行分析...
  • LongtengGensSupreme
  • LongtengGensSupreme
  • 2017年07月13日 10:14
  • 191

dom解析xml文档过程总结

先得到dom解析后的文档树,和root元素.然后递归解析,这个程序中没说明如何保存相应节点的值,如果要用hashtable数据结构保存各个节点的值,程序还得做相应调整,因为在这个递归中textvalu...
  • shunan
  • shunan
  • 2007年09月15日 11:02
  • 1049

格式良好的XML文档( well formed)

遵守如下规则的XML文档,称为格式良好的XML文档。   1)必须有xml的声明,例如。   2)必须有且只有一个根元素。   3)标记大小写敏感。   4)属性值用引号,单引号双引号都可以,...
  • qq_24484085
  • qq_24484085
  • 2017年09月19日 19:14
  • 105

xml文档的查询

xml是由万维网定义的一种可拓展的标记语言 xml具有严格的语言规范和良好的可拓展性,允许自由定义标记以描述数据的结构 xml不关心数据的显示方式,这就使得数据内容和结果与显示效果分离,不但有利于...
  • MsdnWoo
  • MsdnWoo
  • 2016年06月25日 22:38
  • 307
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xml文档存储过程
举报原因:
原因补充:

(最多只允许输入30个字)