edo*_*oft 3 xml sql sql-server casting ampersand
SQL客户端上的以下代码段在"&"上失败:
select cast('<name>Spolsky & Atwood</name>' as xml)
Run Code Online (Sandbox Code Playgroud)
有没有人知道解决方法?
更长的解释,我需要更新XML列中的一些数据,并且我通过将XML值转换为varchar来使用搜索和替换类型hack,使用此强制转换来替换和更新XML列.
它不是有效的XML.用途&
:
select cast('<name>Spolsky & Atwood</name>' as xml)
Run Code Online (Sandbox Code Playgroud)
select cast('<name>Spolsky & Atwood</name>' as xml)
Run Code Online (Sandbox Code Playgroud)
标准XML
不允许标记内的文字&符号XML
,并且任何XML
解析器都无法解析此类文档.
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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
将输出以下内容:
<?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 & Atwood</name>
</MyData>
Run Code Online (Sandbox Code Playgroud)
,&
而不是&
.
归档时间: |
|
查看次数: |
10462 次 |
最近记录: |