Sql server 2005 如何在sqlserver中解析具有特殊字符的xml
我在添加Sql server 2005 如何在sqlserver中解析具有特殊字符的xml,sql-server-2005,xml-parsing,Sql Server 2005,Xml Parsing,我在添加时遇到以下错误您需要确保XML有效,因此您需要确保对任何特殊字符进行编码 e、 g DECLARE@MyXML SET@MyXML= 白色 蓝色 黑色 绿色 红色 苹果 菠萝 葡萄 甜瓜 ' & ' " < > & ' " xml中的无效特殊字符及其替换 &-& - “-” “-' 你能提供给我,有多少特殊字符的xml没有被解析,以及它们的替代品吗 DECLARE @MyXML XML SET @MyXML = '<SampleXML> &
时遇到以下错误您需要确保XML有效,因此您需要确保对任何特殊字符进行编码
e、 g
DECLARE@MyXML
SET@MyXML=
白色
蓝色
黑色
绿色
红色
苹果
菠萝
葡萄
甜瓜
'
& ' " < > & ' "
xml中的无效特殊字符及其替换
&代码>
”
'代码>
你能提供给我,有多少特殊字符的xml没有被解析,以及它们的替代品吗
DECLARE @MyXML XML
SET @MyXML = '<SampleXML>
<Colors>
<Color1>W < hite</Color1>
<Color2>Blue</Color2>
<Color3>Black</Color3>
<Color4 Special="Light">Green</Color4>
<Color5>Red</Color5>
</Colors>
<Fruits>
<Fruits1>Apple</Fruits1>
<Fruits2>Pineapple</Fruits2>
<Fruits3>Grapes</Fruits3>
<Fruits4>Melon</Fruits4>
</Fruits>
</SampleXML>'
SELECT
a.b.value('Colors[1]/Color1[1]','varchar(10)') AS Color1,
a.b.value('Colors[1]/Color2[1]','varchar(10)') AS Color2,
a.b.value('Colors[1]/Color3[1]','varchar(10)') AS Color3,
a.b.value('Colors[1]/Color4[1]/@Special','varchar(10)')+' '+
+a.b.value('Colors[1]/Color4[1]','varchar(10)') AS Color4,
a.b.value('Colors[1]/Color5[1]','varchar(10)') AS Color5,
a.b.value('Fruits[1]/Fruits1[1]','varchar(10)') AS Fruits1,
a.b.value('Fruits[1]/Fruits2[1]','varchar(10)') AS Fruits2,
a.b.value('Fruits[1]/Fruits3[1]','varchar(10)') AS Fruits3,
a.b.value('Fruits[1]/Fruits4[1]','varchar(10)') AS Fruits4
FROM @MyXML.nodes('SampleXML') a(b)
DECLARE @MyXML XML
SET @MyXML = '<SampleXML>
<Colors>
<Color1>W < hite</Color1>
<Color2>Blue</Color2>
<Color3>Black</Color3>
<Color4 Special="Light">Green</Color4>
<Color5>Red</Color5>
</Colors>
<Fruits>
<Fruits1>Apple</Fruits1>
<Fruits2>Pineapple</Fruits2>
<Fruits3>Grapes</Fruits3>
<Fruits4>Melon</Fruits4>
</Fruits>
</SampleXML>'
<SampleXML>
<Colors>
<Color1>W < hite</Color1>
<Color2>Blue</Color2>
<Color3>Black</Color3>
<Color4 Special="Light">Green</Color4>
<Color5>Red</Color5>
</Colors>
<Fruits>
<Fruits1>Apple</Fruits1>
<Fruits2>Pineapple</Fruits2>
<Fruits3>Grapes</Fruits3>
<Fruits4>Melon</Fruits4>
</Fruits>
</SampleXML>
<root>
<item> < > & ' "</item>
<item att=" < > & ' "" />
</root>
declare @xml xml =
'
<root>
<item> < > & '' "</item>
<item att=" < > & '' "" />
</root>
'
select @xml.value('(root/item)[1]', 'varchar(20)') as NodeValue,
@xml.value('(root/item/@att)[1]', 'varchar(20)') as AttValue
NodeValue AttValue
-------------------- --------------------
< > & ' " < > & ' "