XML中使用双引号
<add key ="test" value= ""fdfdfdsfsfgsfg","sdadfa"" />
文本由字符数据和标记混合构成。标记包括起始标记、结束标记、空元素标记、实体引用、 字符引用、注释、 CDATA 段定界符、文档类型声明和处理指令。
其他所有非标记的文本组成文档的字符数据。
"and" 号 (&) 和左尖括号 (<) 只有作为标记定界符,或在注释,处理指令,或 CDATA 段中时才能以字面形式出现。它们在一个内部实体声明的字面实体数值中也是合法的,参见 "4.3.2 格式良好的解析实体 " 。如果在其他地方需要用到这两个字符,它们必须用数值式字符引用来转义或分别用字符串 "&" 和 "<" 表示。右尖括号 (>) 可以用 ">" 表示,而当它在内容中的字符串 "]]>" 中出现,但此字符串不表示一个 CDATA 段的结束时,出于兼容性考虑,必须用 ">" 或一个字符引用转义得到。
在一个元素的内容中,字符数据可以是不包括任何标记的起始定界符的任意字符串。在一个 CDATA 段中,字符数据可以是不包括 CDATA 段结束定界符 "]]>" 的任意字符串。
为了允许在属性值中包含单引号和双引号,省略符或称单引号 (') 可以被表示为 "'" ,而双引号 (") 可以被表示为 """ 。
字符数据
[14]CharData ::=[^<&]* - ([^<&]* ']]>' [^<&]*)
——————————————————————————————
USE TEST
GO
IF OBJECT_ID('tempdb..#t')IS NOT NULL
DROP TABLE #t
GO
CREATE TABLE #T
(ID INT IDENTITY(1,1),
TT NVARCHAR(10)
)
SET QUOTED_IDENTIFIER ON
INSERT INTO #T(TT)VALUES ('AA+AA')
INSERT INTO #T(TT)VALUES ('AA''AA')
INSERT INTO #T(TT)VALUES
--消息 207,级别 16,状态 1,第 4 行
--列名 'AA+AA' 无效。
select * from #T
SET QUOTED_IDENTIFIER OFF
INSERT INTO #T(TT)VALUES ("AA1+AA1")
INSERT INTO #T(TT)VALUES ("AA1'AA1")
INSERT INTO #T(TT) VALUES ('AA2+AA2')
select * from #T
在XML中,有一些符号作为XML 的标记符号,一些特定情况下,属性值必须带有这些特殊符号。 下面主要是讲解一些常用的特殊符号的处理
例一: 双引号的使用。
双引号作为XML 属性值的开始结束符号,因此无法在值中直接使用"". 处理方式可以分为两种。
a:属性值中没有'(单引号),那么可以用单引号'' 作为属性值的开始结束符号
<add key="IPhone" value="apple"/> ...属性值为 ("apple").
解决: <add key="IPhone" value=’"apple"‘/>
b:属性值中有'(单引号),也有双引号。 如...属性值为 ("'apple").
<add key="IPhone" value=""'apple""/>
下表为 XML 标记使用的字符列出了五种内置实体。
实体 | 实体引用 | 含义 |
---|---|---|
lt |
< |
<(小于号) |
gt |
> |
>(大于号) |
amp |
& |
&(“and”符) |
apos |
' |
'(撇号或单引号) |
quot |
" |
"(双引号) |
如果字符可能会使 XML 分析器错误地解释文档结构,请使用实体,而不要键入字符。' 和 " 实体引用最常用在属性值中。