DECLARE @idoc int
DECLARE @doc varchar(max)
SET @doc ='<?xml version="1.0" encoding="gb2312" ?><NewDataSet>
<SQLDataSet>
<id>1</id>
<QCCheckControlItemId>QCCL0000000H</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>尺寸</Project>
<Specifications>12.25±0.2</Specifications>
<Sample1>234</Sample1>
<Sample2>234</Sample2>
<Sample3>234</Sample3>
<Sample4>43</Sample4>
<Sample5 />
<Judgement>NG</Judgement>
</SQLDataSet>
<SQLDataSet>
<id>2</id>
<QCCheckControlItemId>QCCL0000000I</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>尺寸</Project>
<Specifications>52±0.2</Specifications>
<Sample1>234</Sample1>
<Sample2>234</Sample2>
<Sample3>2</Sample3>
<Sample4>234</Sample4>
<Sample5 />
<Judgement>NG</Judgement>
</SQLDataSet>
<SQLDataSet>
<id>3</id>
<QCCheckControlItemId>QCCL0000000P</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>尺寸</Project>
<Specifications>12±2</Specifications>
<Sample1>324</Sample1>
<Sample2>234</Sample2>
<Sample3>234</Sample3>
<Sample4>234</Sample4>
<Sample5 />
<Judgement>NG</Judgement>
</SQLDataSet>
<SQLDataSet>
<id>4</id>
<QCCheckControlItemId>QCCL0000001D</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>尺寸</Project>
<Specifications>13.12±2</Specifications>
<Sample1>23</Sample1>
<Sample2>324</Sample2>
<Sample3>234</Sample3>
<Sample4>234</Sample4>
<Sample5 />
<Judgement>NG</Judgement>
</SQLDataSet>
<SQLDataSet>
<id>5</id>
<QCCheckControlItemId>QCCL0000001E</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>尺寸</Project>
<Specifications>13.79±0.2</Specifications>
<Sample1>324</Sample1>
<Sample2>324</Sample2>
<Sample3>342</Sample3>
<Sample4>324</Sample4>
<Sample5 />
<Judgement>NG</Judgement>
</SQLDataSet>
<SQLDataSet>
<id>6</id>
<QCCheckControlItemId>QCCL0000001F</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>尺寸</Project>
<Specifications>16.05±0.2</Specifications>
<Sample1 />
<Sample2 />
<Sample3 />
<Sample4 />
<Sample5 />
<Judgement />
</SQLDataSet>
<SQLDataSet>
<id>7</id>
<QCCheckControlItemId>QCCL0000001G</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>尺寸</Project>
<Specifications>4.95±0.2</Specifications>
<Sample1 />
<Sample2 />
<Sample3 />
<Sample4 />
<Sample5 />
<Judgement />
</SQLDataSet>
<SQLDataSet>
<id>8</id>
<QCCheckControlItemId>QCCL0000000X</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>功能</Project>
<Sample1 />
<Sample2 />
<Sample3 />
<Sample4 />
<Sample5 />
<Judgement />
</SQLDataSet>
<SQLDataSet>
<id>9</id>
<QCCheckControlItemId>QCCL0000000W</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>结构</Project>
<Sample1 />
<Sample2 />
<Sample3 />
<Sample4 />
<Sample5 />
<Judgement />
</SQLDataSet>
<SQLDataSet>
<id>10</id>
<QCCheckControlItemId>QCCL0000000Y</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>实配</Project>
<Sample1 />
<Sample2 />
<Sample3 />
<Sample4 />
<Sample5 />
<Judgement />
</SQLDataSet>
<SQLDataSet>
<id>11</id>
<QCCheckControlItemId>QCCL0000000V</QCCheckControlItemId>
<ObjType>首件</ObjType>
<Project>外观</Project>
<Sample1 />
<Sample2 />
<Sample3 />
<Sample4 />
<Sample5 />
<Judgement />
</SQLDataSet>
</NewDataSet>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- SELECT stmt using OPENXML rowset provider
SELECT *
FROM OPENXML (@idoc, '/NewDataSet/SQLDataSet',2)
WITH (id char(12) 'id',
QCCheckControlItemId char(12) 'QCCheckControlItemId',
ObjType nvarchar(100) 'ObjType',
Project nvarchar(100) 'Project',
Specifications nvarchar(100) 'Specifications',
Sample1 float 'Sample1',
Sample2 float 'Sample2',
Sample3 float 'Sample3',
Sample4 float 'Sample4',
Sample5 float 'Sample5',
Judgement varchar(10) 'Judgement' ) exec sp_xml_removedocument @idoc

  长度一定要够不然会报错:例如

XML 文本 "    <Specifications>12±2</Specifications" 附近的行号 33 处出现 XML 分析错误 0xc00ce55f。
Msg 6602, Level 16, State 2, Procedure sp_xml_preparedocument, Line 1
错误说明是 'End 元素缺少 '>' 字符。'。
Msg 8179, Level 16, State 5, Line 147
找不到句柄为 0 的预定义语句。
Msg 6607, Level 16, State 3, Procedure sp_xml_removedocument, Line 1
sp_xml_removedocument: 为参数 1 提供的值无效。

 编码结构不对:例如

XML 文本 "    <ObjType>" 附近的行号 5 处出现 XML 分析错误 0xc00ce508。
Msg 6602, Level 16, State 2, Procedure sp_xml_preparedocument, Line 1
错误说明是 '文本内容中发现无效字符。'。
Msg 8179, Level 16, State 5, Line 147
找不到句柄为 0 的预定义语句。
Msg 6607, Level 16, State 3, Procedure sp_xml_removedocument, Line 1
sp_xml_removedocument: 为参数 1 提供的值无效。

  

SQL解析XML文件的更多相关文章

  1. 解析XML文件示例

    项目中要解析Xml文件,于是在工程里找了下前人写例子. 1,SAX(基于事件,效率高,使用声明加载什么). public class MVCConfig { private static MVCCon ...

  2. 【java项目实战】dom4j解析xml文件,连接Oracle数据库

    简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...

  3. 曹工说Spring Boot源码(7)-- Spring解析xml文件,到底从中得到了什么(上)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  4. Android 解析XML文件和生成XML文件

    解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...

  5. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

  6. JAVA中使用DOM解析XML文件

    XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...

  7. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  8. XML:使用DOM技术解析xML文件中的城市,实现select级联选择

    中国的城市xml格式:cities.xml <?xml version="1.0" encoding="utf-8"?> <china> ...

  9. dom4j如何解析XML文件

    最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是通用的,仅供参考哦~~ 首先说:dom4j是一个java的XML ...

随机推荐

  1. google在线測试练习题3

    Problem The Latin alphabet contains 26 characters and telephones only have ten digits on the keypad. ...

  2. HDU 5319

    Painter Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Su ...

  3. IDEA无法启动:Failed to create JVM:error code -4

    发生该错误的原因是由于IDEA须要使用的连续内存空间没有得到满足,解决方式: 1.减小-Xmx和-XX:PermSize的值     切换到IDE_HOME\bin\文件夹下,找到<produc ...

  4. BZOJ4477: [Jsoi2015]字符串树

    [传送门:BZOJ4477] 简要题意: 给出一棵n个点的树,树上的边都代表一个字符串,给出Q个询问,每个询问输入x,y和字符串s,求出x到y的路径上以s为前缀的字符串个数 题解: 自己yy了一波可持 ...

  5. 131.lambda表达式小结

    C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作.Lambda的语法形式如下:[函数对象参数](操作符重载函数参数) mutable或exception声明->返回 ...

  6. 5.不用拷贝的对象可以用ref

    #include <iostream> #include <string> #include <boost/bind.hpp> #include <boost ...

  7. Lua,github,nginx

    个人觉得这几种工具都是大学里,至少是前几年未曾出现于课本中或者图书馆中的.而如今确实某些公司赫然出现在招聘需求中的东西. 什么是Lua,为什么要用Lua——做手机游戏而被推广的.Lua原来早在93年就 ...

  8. OpenGL编程逐步深入(五)Uniform 变量

    准备知识 在这个教程中我们会遇到一种新的Shader变量类型,即uniform变量.attribute(属性)变量和uniform变量的不同之处在于attribute 变量中包含顶点的具体数据,当每次 ...

  9. 安装meteor运行基本demo发生错误。

    bogon:~ paul$ curl https://install.meteor.com/ | sh % Total % Received % Xferd Average Speed Time Ti ...

  10. TPC-C测试

    TPC发布的测试标准之一,是专门针对联机事务处理系统(OLTP)的测试标准.1992年发布1.0版本.最新版本5.11,2010年发布. 测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境, ...