在SQL Server 2012中使用CDATA

时间:2015-03-16 06:21:14

标签: sql sql-server xml

我正在尝试使用SQL Server 2012中的CDATA在xml中创建一个节点。我使用https://stackoverflow.com/a/1429383/4158652中提供的代码。

有两个主要问题 1-我的数据未填入 CDATA ,即instrtext和hinttext。 xml中的2个额外道具节点

我一直在使用的代码是

SET @instrProps =
            (
            select * from (             
              SELECT
                    1 AS Tag,
                    NULL AS Parent,                     
                NULL AS 'props!1!instrtext!cdata',
                NULL AS 'props!1!hinttext!cdata',
                NULL AS 'props!1!score!Element'
            UNION ALL
            SELECT
                1 AS Tag,
                NULL AS Parent,                 
                @instText,
                @hintText,
                @score
                ) X             
            FOR XML EXPLICIT, ROOT('props')
  )
  select @instrProps as DiplayNode

我期待节点

       <props>
            <instrtext>
                <![CDATA[TExt in this node]]>
            </instrtext>
            <hinttext>
                <![CDATA[Text in thi node]]>
            </hinttext>
            <score>5.000</score>
        </props>

但它就像

<props>
  <props />
  <props>
    <instrtext>TExt in this node</instrtext>
    <hinttext>TExt in this node</hinttext>
    <score>5</score>
  </props>
</props>

请帮忙。

1 个答案:

答案 0 :(得分:0)

当涉及XML数据类型时,您似乎无法保留CDATA。见https://stackoverflow.com/a/9133622/864696