该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明! 陈希章原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/06/22/1227521.html原文标题:使用SQL Server的OpenXML解析带有命名空间的XML片段 原文发表:2008/6/21 23:46:00 |
SQL Server的OpenXML函数可以针对XML片段或者文档进行解析,并处理。有关资料,你可以参考http://msdn.microsoft.com/en-us/library/ms186918.aspx
但如果该片段含有命名空间,情况可能会复杂一点。例如下面这个例子
第一部分:XML的内容

第二部分:查询语法
1
DECLARE
@XML
XML
2
DECLARE
@HANDLER
INT
3
SELECT
@XML
=
CatalogDescription
FROM
Production.ProductModel
WHERE
ProductModelID
=
19
4
5
EXEC
SP_XML_PREPAREDOCUMENT
@HANDLER
OUTPUT,
@XML
,
'
'
6
7
--
这里要为PREPAREDOCUMENT存储过程加入第三个参数,就是命名空间的声明
8
9
SELECT
*
FROM
OPENXML(
@HANDLER
,
'
/p1:ProductDescription/p1:Manufacturer
'
,
2
)
WITH
(
[
Name
]
NVARCHAR
(
50
)
'
p1:Name
'
,CopyRight
NVARCHAR
(
50
)
'
p1:Copyright
'
)
10
11
EXEC
SP_XML_REMOVEDOCUMENT
@HANDLER
--
一定不要忘记REMOVE
12

2

3

4

5

6

7

8

9

10

11

12

第三部分:显示结果(这是我写的一个小的演示工具)
作者:陈希章 出处:http://blog.youkuaiyun.com/chen_xizhang 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |