XPATH - 从元素中提取数据

时间:2010-06-25 20:18:25

标签: xpath

以下是要使用的数据和Select语句:

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) 没有实际进入标签级别,因为这会影响性能。

1 个答案:

答案 0 :(得分:0)

我不是100%确定你在寻找什么,但是为了获得标签下没有标签元素的所有数据,你将使用以下xpath:

./tag/text()

这(在XPATH中,我不确定sql xml查询)将返回一个TEXT元素的节点集,其中包含标记下的所有值。因此,如果您有4个标记元素,则会有四个单独的TEXT元素。