一个解析xml的问题,急

summerain 2010-04-09 02:10:32
以下代码,在SQL Server 2005下执行,为什么得不到我想要的值呢?
我想得到这个xml中的某个元素值,比如:RegisterTime和FullName.
我的SQL问题出在哪里?或者有更好的解决办法?谢谢大家.


DECLARE @x XML
SET @x = '
<ModifyMember_Input xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ListOfMemberModIoV1 xmlns="http://www.siebel.com/xml/%20Member%20Mod%20IO%20v1">
<LoyMember>
<Control1>0</Control1>
<Description />
<RegisterTime>2010-01-21 17:20:00</RegisterTime>
<CardActive>Y</CardActive>
<ListOfContact>
<Contact>
<Alias />
<FullName>AAA</FullName>
</Contact>
</ListOfContact>
<ListOfLOYMember_FetchInfoMethod />
</LoyMember>
</ListOfMemberModIoV1>
</ModifyMember_Input>'
select @x

select RegisterTime = @x.value('(/ModifyMember_Input/ListOfMemberModIoV1/LoyMember/RegisterTime)[1]', 'varchar(255)')
,FullName = @x.value('(/ModifyMember_Input/ListOfMemberModIoV1/LoyMember/ListOfContact/Contact/FullName)[1]', 'varchar(255)')



...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
summerain 2010-04-09
  • 打赏
  • 举报
回复
非常感谢FreeSarge.问题得到完美解决.
指间的风 2010-04-09
  • 打赏
  • 举报
回复
这是 按照你原来xml 文件的格式 提取出来的数据
指间的风 2010-04-09
  • 打赏
  • 举报
回复
那就这样写吧

select RegisterTime = @x.value('declare namespace
tt="http://www.siebel.com/xml/%20Member%20Mod%20IO%20v1"; (
/ModifyMember_Input
/tt:ListOfMemberModIoV1
/tt:LoyMember
/tt:RegisterTime)[1]',
'varchar(255)')
summerain 2010-04-09
  • 打赏
  • 举报
回复
我试了下,确实加点东西就好了,但是原有的xml就是这样,改不了.是不是还有什么隐藏的选项呢.
谢谢FreeSarge的提示.
指间的风 2010-04-09
  • 打赏
  • 举报
回复
在第二行 的命名空间xmlns的冒号后边加点东西就好了。

<ListOfMemberModIoV1 xmlns:aa="http://www.siebel.com/xml/%20Member%20Mod%20IO%20v1">
指间的风 2010-04-09
  • 打赏
  • 举报
回复
我在测试语法
http://www.cnblogs.com/gleamy_ming/archive/2009/09/11/1564633.html
SQL77 2010-04-09
  • 打赏
  • 举报
回复
XML不懂,找石头大哥,梁哥,TONY哥,水哥等
summerain 2010-04-09
  • 打赏
  • 举报
回复
如何在有命名空间的情况下查询得到值呢?
指间的风 2010-04-09
  • 打赏
  • 举报
回复
问题出在命名空间上,你的代码去掉命名空间是好事的。
指间的风 2010-04-09
  • 打赏
  • 举报
回复
你想得到什么值啊?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧