加CDATA标记就可以
不过, CDATA 标记似乎只有在 EXPLICIT 模式下才能用

解决方案 »

  1.   

    不过, 转义似乎也没有问题吧? 因为你从 xml 里面使用 value 之类的方法再把数据取出来的时候, 会自动再还原回来
      

  2.   

    SQL2005 ? 2k下好像没有path模式.如老大所说,加cdata标记可以做到不解析,原样输出. path模式支不支持cdata不清楚,sql2005不熟.我觉得这里,可以不用管它,因为sql只负责取数据,显示问题应该留给前台程序去做.声明 disable-output-escaping="yes"原来输出即可
    <xsl:text><xsl:value-of select="//path" disable-output-escaping="yes"/></xsl:text>
      

  3.   

    还有个问题,节点属性值中无法用cdata,即便写上,那也只是字符.确实,还原问题,解析器自己会处理的.
      

  4.   

    感谢各位朋友的帮助, 我想问下有没有办法不用cdata标记。 因为产生的XML被放到一个VarChar里直接当字符串使用。
    比如是不是有什么参数
    FOR   XML   PATH(''), XXX 
    可以禁用掉XML的转义
      

  5.   

    DECLARE @x XML
    SET @x='<root>&</root>'试下这个就知道了,直接插预定义实体的话,本身编译器自己都会报错.在for xml生成xml文档时,其实就是已经转义过的.