在 SQL 中的 CAST 中使用 & 符号

2024-03-24

SQL Server 2005 上的以下代码片段在与号“&”上失败:

select cast('<name>Spolsky & Atwood</name>' as xml)

有人知道解决方法吗?

更长的解释,我需要更新 XML 列中的一些数据,并且我正在使用搜索和替换类型 hack,将 XML 值转换为 varchar,使用此转换执行替换和更新 XML 列。


select cast('<name>Spolsky &amp; Atwood</name>' as xml)

里面的字面&符号XML标签不被允许XML标准,这样的文档将无法被任何人解析XML parser.

An XMLSerializer()将输出&符号HTML- 编码。

以下代码:

using System.Xml.Serialization;

namespace xml
{
    public class MyData
    {
        public string name = "Spolsky & Atwood";
    }

    class Program
    {
        static void Main(string[] args)
        {
            new XmlSerializer(typeof(MyData)).Serialize(System.Console.Out, new MyData());
        }
    }
}

将输出以下内容:

<?xml version="1.0" encoding="utf-8"?>
<MyData
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <name>Spolsky &amp; Atwood</name>
</MyData>

, 与&amp;代替&.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SQL 中的 CAST 中使用 & 符号 的相关文章

随机推荐