XML中必须转义的5个预定义字符是&、、"、',分别用&、<、>、"、'表示;属性值中需按定界符匹配转义,文本内容中单双引号通常无需转义;推荐用CDATA处理大量特殊字符。
\' \">
在XML中,&、'(单引号)、"(双引号)属于预定义的特殊字符,直接写入文档会导致解析错误。必须使用对应的实体引用(entity reference)来安全表示。
XML规范只预定义了5个实体,其中与你提到相关的有:
name=&quot;He said &quot;Hi&quot;&quot;)desc='It's OK')XML元素内容里写单引号或双引号通常无需转义(例如:&lt;msg&gt;He said &quot;Hello&quot;&lt;/msg&gt; 是合法的),但一旦出现在属性值中,就必须按属性定界符匹配转义:
如果一段文本里大量混用 &、"、'、 等,逐个转义易出错。此时可用 <code> 包裹整段内容:
里面所有字符都会被解析器原样保留,不作解析——但注意:CDATA内不能出现 ]]> 字符序列。
手写XML容易遗漏或错写实体(比如写成 ∧ 这种非法形式)。实际开发中应交由XML生成库处理:
Transformer 或 DocumentBuilder 输出时自动转义xml.etree.ElementTree 的 subelement.text = "A & B",库会自动转为 A & B
DOMParser + XMLSerializer,或第三方库如 xmlbuilder2
基本上就这些。核心就一条:只要字符有歧义(尤其是 &),就老实用标准实体;别图省事硬塞原始符号,解析器不会通融。
以上就是XML中处理特殊字符 & < > ' " 的方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号