如何在XQuery中SQL服务器节点XML文件分析器性能
问题描述:
我有这样的XML:如何在XQuery中SQL服务器节点XML文件分析器性能
我想对属性名的值=“ParticipTypeName”我使用类似的东西:
;WITH XMLNAMESPACES(DEFAULT 'http://xml.common.asset.aoma.sonymusic.com/ProductMetadata.xsd')
SELECT
x.u.value('(/BusinessUnitProperties/Property[@name = "ParticipTypeName"])[1]', 'varchar(100)') as ParticipTypeName
from
@XML.nodes('/ProductMetadata/Tracks/Track/Participants/Participant') x(u)
它不起作用。 我应该如何获得这个属性的价值?
答
试试这个:
SELECT x.u.value('(//*:Property[@*:name="ParticipTypeName"])[1]','nvarchar(max)')
的//
将搜索任何元素<Property>
。 XQuery
-过滤器将选择您正在查找的名称。 *:
将允许您忽略名称空间。
不起作用:XQuery [value()]:'value()'需要一个单例(或空序列),找到操作数'xdt:untypedAtomic *' – jruiz
@ jruiz傻我!当然,编辑我的答案... – Shnugo
工作,但我不能使用//将搜索任何元素,我需要访问节点BusinessUnitProperties /财产,并获得财产[@name =“ParticipTypeName”],你能帮我?因为xml太长了,它在不同节点上有很多属性 –
jruiz