2010-06-25 43 views
0

以下提取数据是数据和Select语句一起工作:XPATH - 从要素

declare @XMLdata xml 
set @XMLdata = ' 
    <taggroup key="pros" name="Le pour"> 
     <tag isuseradded="false" count="1">Bonne qualité</tag> 
     <tag isuseradded="false" count="1">Correspond à mes attentes</tag> 
     <tag isuseradded="true" count="1">Impeccable</tag> 
     <tag isuseradded="false" count="1">Prix abordable</tag> 
    </taggroup> 
    ' 
select  
    ParamValues.ID.value('(./@key)','nvarchar(max)') as TagGroupKey, 
    ParamValues.ID.value('(./@name)','nvarchar(max)') as TagGroupName, 
    ParamValues.ID.value('(./tag)[1]','nvarchar(max)') as TagValue, 
from @XMLData.nodes('taggroup') as ParamValues(ID) 

我需要提取的4个变量值 (Bonne qualitéCorrespond à mes attentesImpeccablePrix abordable) 没有实际去标签级别,因为这会影响性能。

+0

你使用什么语言? – Oded 2010-06-25 20:21:13

+0

SQL XML查询.. – 2010-06-25 20:22:25

+0

你是什么意思的“不去标签级别”?另外,我无法想象任何查询如何对这样的示例的性能产生显着影响。 – 2010-06-25 20:26:47

回答

0

我不是100%肯定你正在寻找什么,而是让所有在标签中的数据的无标签元素本身你可以使用以下XPath:

./tag/text() 

这(在XPATH,我我不确定关于sql xml查询)将单独返回标记下的所有值的TEXT元素的节点集。所以如果你有4个标签元素,将会有4个独立的TEXT元素。