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 ...
随机推荐
- Fragmen直接来回切换deno
思路: 第一步.建立一个activity.用来管理fragment. 第二步'获取fragmentManger 和fragmentTraction. private FragmentManager f ...
- NHibernate概括
什么是?NHibernate?NHibernate是一个面向.NET环境的对象/关系数据库映射工具. 对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种 ...
- bzoj1193: [HNOI2006]马步距离(贪心+bfs)
1193: [HNOI2006]马步距离 题目:传送门 题解: 毒瘤题... 模拟赛时的一道题,刚开始以为是一道大难题...一直在拼命找规律 结果.... 还是说正解吧: 暴力的解法肯定是直接bfs, ...
- hdoj--5569--matrix(动态规划)
matrix Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...
- hdoj--3183--A Magic Lamp(贪心)
A Magic Lamp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- OpenGL编程逐步深入(十)索引绘制
准备知识 OpenGl提供了一些绘图函数.到目前为止我们使用的glDrawArrays绘图函数属于"顺序绘制".这意味着顶点缓冲区从指定的偏移量开始被扫描,每X(点为1,直线为2等 ...
- 减少XML文件数
在android开发中,做出漂亮的ui的应用,往往有数量庞大的xml文件.比如,我们要给一个Button加上一个selector,如果背景不是图片,就得写三个xml文件,分别是:edit_focuse ...
- 原生js实现发送验证码
var form = { myfun:function(){ var el = form.config().el; var button = form.config().button; var tim ...
- null, undefined理解
概述 null与undefined都可以表示"没有",含义非常相似.将一个变量赋值为undefined或null,语法效果几乎没区别. var a = undefined; // ...
- bzoj 1588 [HNOI2002] 营业额统计 链表和Splay
来自HNOI 2002营业额的统计一题,这题以前是用链表水过的,最近看见许多splay的题,赶紧张一下知识. 题目大意就是对于一个序列,输出每个元素与它之前元素的差的最小值的和.先说链表的方法吧. 大 ...