如何在XQuery中SQL服务器节点XML文件分析器性能

问题描述:

我有这样的XML:如何在XQuery中SQL服务器节点XML文件分析器性能

enter image description here

我想对属性名的值=“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-过滤器将选择您正在查找的名称。 *:将允许您忽略名称空间。

+0

不起作用:XQuery [value()]:'value()'需要一个单例(或空序列),找到操作数'xdt:untypedAtomic *' – jruiz

+0

@ jruiz傻我!当然,编辑我的答案... – Shnugo

+0

工作,但我不能使用//将搜索任何元素,我需要访问节点BusinessUnitProperties /财产,并获得财产[@name =“ParticipTypeName”],你能帮我?因为xml太长了,它在不同节点上有很多属性 – jruiz