怎么保留XMLjson中的特殊字符转义

                        XML中输入特殊符号
                           周银辉
特殊符号比如 &, 要在xml中使用的话, 其实和html的转码是一样的, 参考下面这个表(使用十进制编码那一列)
十进制编码
十进制编码
要在C#代码中直接使用的话, 可以直接 string str = "&"; 或者 string str="\u2122"; 其中的2122是其Unicode的16进制表示;
要得到十六进制表示,可以用如下代码:
Encoding encoder = Encoding.U
Byte[] encodeBytes = encoder.GetBytes("&");
for (int i = 0; i & encodeBytes.L i += 2)
Console.WriteLine("\\u{0:x2}{1:x2}", encodeBytes[i + 1], encodeBytes[i]);
阅读(...) 评论()xml文件中特殊字符的处理
我的图书馆
xml文件中特殊字符的处理
xml文件中特殊字符的处理
在XML中,起始和结束标记之间出现的所有合法字符都被忠实地传给XML处理程序。
为了避免把字符数据和标记中需要用到的一些特殊符号相混淆,XML还提供了一些有用的
实体引用。实体引用的作用是,当在字符数据中需要使用这些特殊符号时,我们采用它的
实体引用来代替。这些特殊的XML实体引用包括:
这样,如果我们需要在"示例"这个标记中出现文本
"&姓名&张三&/姓名&"
正确的写法应该是:
示例〉&姓名&张三&/姓名&〈/示例〉
容易理解,字符"〈"的实体引用是必不可少的,为"〉"设立实体引用同样是为了避免与标记混淆,而字符"&"的实体引用则防止它与实体引用中开头所用的"&"相混淆。那么,我们什么时候需要用到剩下两个字符的实体引用呢?在标记中可以为标记设立属性,而XML规定属性值必须用"""括起来。因此,当属性值中出现字符"""时,需要将它用实体引用代替。请看下面的例子:
&STATEMENT VALUE = "She said, "Don t go there!""&
正确的写法应该是:
&STATEMENT VALUE = "She said, "Don&t go
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢Posts - 72,
Articles - 0,
Comments - 5
16:47 by Spring.Guo, ... 阅读,
在处理XML数据时,特殊字符要特殊处理,不能和节点字符混淆。 所有 XML 文档中的文本均会被解析器解析。 只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。 PCDATA PCDATA 指的是被解析的字符数据(Parsed Character Data)。 XML 解析器通常会解析 XML 文档中所有的文本。 当某个 XML 元素被解析时,其标签之间的文本也会被解析: &message&此文本也会被解析&/message& 解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的 &name& 元素包含着另外的两个元素(first 和 last): &name&&first&Bill&/first&&last&Gates&/last&&/name& 而解析器会把它分解为像这样的子元素: &name& &first&Bill&/first& &last&Gates&/last& &/name& 转义字符 非法的 XML 字符必须被替换为实体引用(entity reference)。 假如您在 XML 文档中放置了一个类似 "&" 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写: &message&if salary & 1000 then&/message& 为了避免此类错误,需要把字符 "&" 替换为实体引用,就像这样: &message&if salary & 1000 then&/message& 在 XML 中有 5 个预定义的实体引用:
& ' 单引号
& " 双引号 注释:严格地讲,在 XML 中仅有字符 "&"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。 CDATA 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。 在 XML 元素中,"&" 和 "&" 是非法的。 "&" 会产生错误,因为解析器会把该字符解释为新元素的开始。 "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。 某些文本,比如 JavaScript 代码,包含大量 "&" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。 CDATA 部分中的所有内容都会被解析器忽略。 CDATA 部分由 "&![CDATA[" 开始,由 "]]&" 结束: &script& &![CDATA[ function matchwo(a,b) { if (a & b && a & 0) then { return 1; } else { return 0; } } ]]& &/script& 在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。 关于 CDATA 部分的注释: CDATA 部分不能包含字符串 "]]&"。也不允许嵌套的 CDATA 部分。 标记 CDATA 部分结尾的 "]]&" 不能包含空格或折行。 & 摘自:as3实现XML中特殊字符的转义还原 - 游戏开发黑科技(WebGL,Stage3D,OpenGL,TS/JS) - CSDN博客
as3实现XML中特殊字符的转义还原
实现XML中特殊字符的转义、还原
1,问题描述
我们知道在&Flex&中书写&XML&时,遇到小于号(&)、大于号(&)等特殊字符都需要进行转义。具体的转义符如下:
&:&&&:&&:&&':&&&:&&
比如下面我们需要在一个&xml&对象中写入一段包含特殊符号的文字:
var&name:String&=&&&&&hangge&&&&
var&device:XML
=&new&XML('&device
id=&47& name=&'&+
name +&'&
&&/device&');
如果这段文字里的特殊符号如果不进行转义的话就会运行报“XML 分析器失败”错误。
2,实现一个自动转义的方法
如果特殊符号很多,手动去一个个修改的话很麻烦,我们可以实现一个自定转义的方法,使用时直接调用就好了。
&&&&public&class&XMLUtilEx
&&&&&&&&public&static&function&toSafeXMLString(value:String):String&{
&&&&&&&&&&&&value
= value.replace(/&/gi,&&&&);
&&&&&&&&&&&&value
= value.replace(/&/gi,&&&&);
&&&&&&&&&&&&value
= value.replace(/&/gi,&&&&);
&&&&&&&&&&&&value
= value.replace(/'/gi,&&&&);
&&&&&&&&&&&&value
= value.replace(/&/gi,
&&&&&&&&&&&&return&
&&&&&&&&public&static&function&fromSafeXMLString(value:String):String&{
&&&&&&&&&&&&value
= value.replace(/&/gi,&&&&);
&&&&&&&&&&&&value
= value.replace(/&/gi,&&&&);
&&&&&&&&&&&&value
= value.replace(/&/gi,&&&&);
&&&&&&&&&&&&value
= value.replace(/&/gi,&&'&);
&&&&&&&&&&&&value
= value.replace(/&/gi,&&\&&);
&&&&&&&&&&&&return&
3,使用样例
var&name:String&=
XMLUtilEx.toSafeXMLString(&&&&hangge&&&&);
var&device:XML
=&new&XML('&device
id=&47& name=&'&+
name +&'&
&&/device&');
原文链接:/blog/cache/detail_1571.html
我的热门文章
即使是一小步也想与你分享推荐这篇日记的豆列
&&&&&&&&&&&&

我要回帖

更多关于 url中的特殊字符 的文章

 

随机推荐