SQL解析XML文件
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文件的更多相关文章
- 解析XML文件示例
项目中要解析Xml文件,于是在工程里找了下前人写例子. 1,SAX(基于事件,效率高,使用声明加载什么). public class MVCConfig { private static MVCCon ...
- 【java项目实战】dom4j解析xml文件,连接Oracle数据库
简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...
- 曹工说Spring Boot源码(7)-- Spring解析xml文件,到底从中得到了什么(上)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- JAVA使用SAX解析XML文件
在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...
- JAVA中使用DOM解析XML文件
XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...
- java中采用dom4j解析xml文件
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
- XML:使用DOM技术解析xML文件中的城市,实现select级联选择
中国的城市xml格式:cities.xml <?xml version="1.0" encoding="utf-8"?> <china> ...
- dom4j如何解析XML文件
最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是通用的,仅供参考哦~~ 首先说:dom4j是一个java的XML ...
随机推荐
- weak和alias
一.强符号和弱符号 在C语言中,如果多个模块定义同名全局符号时,链接器认为函数和已初始化的全局变量(包括显示初始化为0)是强符号,未初始化的全局变量是弱符号. 根据这个定义,Linux链接器使用下面的 ...
- mysql-联结
一.联结 联结是利用SQL的select能执行的最重要的操作. 1.关系表:假如有一个包含产品目录的数据库表,其中每个类别的物品占一行.对于每种物品要求存储的信息包括产品描述和价格,以及生产该产品的供 ...
- 三步实现沉浸式状态栏(即状态栏与APP同色)
本篇实现的是沉浸式状态栏.先明白下概念,什么是状态栏?直接上图: 什么是沉浸式状态栏?演示样例图例如以下: ...
- sass08 if while for each
scss @function getzIndex($layer: default){ $zindexMap: (default: 1, modal: 1000, dropdown: 500, grid ...
- Configuration file schema for the .NET Framework
https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/index Runtime Settings ...
- FZOJ--2221-- RunningMan(水题)
Problem 2221 RunningMan Accept: 4 Submit: 10 Time Limit: 1000 mSec Memory Limit : 32768 KB Pro ...
- matplotlib 可视化 —— 移动坐标轴(中心位置)
通常软件绘图,包括 matlab.python 的 matplotlib,默认都是将坐标轴置于画布(figure)的最下侧(x 轴),最左侧(y 轴),也即将坐标原点置于左下角.而我们自己理解数学,以 ...
- Linux安装PHP MongoDB扩展
本文将讲述一下本人安装MongoDB扩展的过程,大家可以略作参考 安装环境 Linux环境:CentOS 6.5 Apache版本:2.4 PHP版本:5.4.3 MongoDB版本:2.6.5 一. ...
- 【DNN 系列】 下载安装
1.下载 http://dotnetnuke.codeplex.com/releases/view/119857 2.安装 下载完毕 因为 IIS 7 采用了更安全的 web.config 管理机制, ...
- Java基础学习(三) -- OOP的三大特征、向上和向下转型、内部类之详解
面向对象编程(OOP)的三大特征 什么是封装? (1) 把对象的状态和行为看成一个统一的整体,将二者存放在一个独立的类中; (2) "信息隐藏", 把不需要让外界知道的信息隐藏起来 ...