phpxml转义字符,转义-我需要在XML⽂档中转义哪些字符?转义 - 我需要在XML⽂档中转义哪些字符?
必须在XML⽂档中转义哪些字符,或者在哪⾥可以到这样的列表?
9个解决⽅案
1187 votes
如果您使⽤适当的类或库,他们将为您进⾏转义。 许多XML问题都是由字符串连接引起的。
XML转义字符
只有五个:
" "
' '
< <
> >
& &
转义字符取决于特殊字符的使⽤位置。
可以在W3C标记验证服务中验证这些⽰例。
⽂本
安全的⽅法是在⽂本中转义所有五个字符,但是,不需要在⽂本中转义三个字符",'和>:
"'>
属性
安全的⽅法是转义属性中的所有五个字符,但是,"字符不需要在属性中转义:
如果引号为',则⽆需在属性中转义"字符:
同样,如果报价为',则⽆需在属性中转义":
评论
不得在评论中转义所有5个特殊字符:
CDATA
不得在CDATA部分中转义所有5个特殊字符:
&]]>
处理说明
<?process <"'&> ?>
XML与HTML
HTML有⾃⼰的⼀组转义码,涵盖了更多的字符。
Welbog answered 2019-01-14T17:35:50Z
88 votes
也许这会有所帮助:
XML和HTML字符实体引⽤列表:
在SGML,HTML和XML⽂档中 逻辑结构称为字符 数据和属性值由 字符序列,其中每个 字符可以直接显⽰ (代表⾃⼰),或者可
以 由⼀系列⼈物代表 称为字符引⽤,其中 有两种类型:数字 字符引⽤和字符 实体参考。 本⽂列出 字符实体引⽤它 在HTML和XML⽂档中有效。
该⽂章列出了以下五个预定义的XML实体:
quot "
amp &
apos '
lt <
gt >php中header是什么意思
Andrew Hare answered 2019-01-14T17:36:34Z
67 votes
根据万维⽹联盟(w3C)的规范,除了⽤作标记分隔符或⽤于注释,处理指令或CDATA部分之外,有5个字符在XML⽂档中不得以其字⾯形式出现。。 在所有其他情况下,必须根据下表使⽤相应的实体或数字引⽤替换这些字符:
原始的CharacterXML实体replacementXML数字替换
&LT;&安培; LT;&安培;#60;
&GT;&安培; GT;&安培;#62;
“&amp; quot;&amp;#34;
&安培;&放⼤器;放⼤器;&安培;#38;
'&安培;者;&安培;#39;
注意,上述实体也可以在HTML中使⽤,除了与XHTML 1.0⼀起引⼊的&amp;,并且未在HTML 4中声明。出于这个原因,并且为了确保逆向兼容性,XHTML规范建议 使⽤&amp;#39; 代替。
Albz answered 2019-01-14T17:37:44Z
45 votes
标记和属性的转义字符不同。
对于标签:
< <
> > (only for compatibility, read below)
& &
对于属性:
" "
' '
&符号(&amp;)和左尖括号(&lt;)不得 以字⾯形式出现,除⾮⽤作标记分隔符, 或在评论,处理指令或
CDATA部分内。 如果 它们在别处需要,必须使⽤数字进⾏转义 字符引⽤或字符串“&amp; amp;”和“&amp; lt;” 分别。 可以使⽤以下来表⽰右尖括号(&gt;) 字符串“&amp; gt;”,并且为了兼容性,必须使⽤其中任何⼀个进⾏转义 “&amp; gt;”或出现在字符串“]]&gt;中的字符引⽤ “在内容中,当该字符串未标记CDATA的结尾时 部分。
要允许属性值包含单引号和双引号, 撇号或单引号字符(')可以表⽰为“ &安培;者; “和双引号字符(”)为“&amp; quot;”。
Peter Bartels answered 2019-01-14T17:38:34Z
19 votes
除了众所周知的五个字符[&lt;,&gt;,&amp;,“,']之外,我还会转义垂直制表符(0x0B)。它是有效的UTF-8,但不是有效的XML 1.0,甚⾄很多 库(包括libxml2)错过它并静默输出⽆效的XML。
Charon ME answered 2019-01-14T17:38:56Z
10 votes
⼀个旧的,常见问题的新的,简化的答案......
简化的XML转义
永远(记住90%重要)
逃脱]]>为]]>除⾮]]>正在开始⼀个]]>。
逃脱]]>为]]>除⾮]]>正在开始⼀个]]>。
属性值(9%重要值得记住)
]]> ]]>单引号]]>可双引号内.'
]]> ]]>双引号]]>可以在单引号内.'
逃逸]]>为]]>和]]>为'否则。
评论,CDATA和处理说明(重要的是要记住0.9%)
]]>在评论]]>中没有什么必须转义但不允许]]>字符串。
]]>在CDATA ]]>中没有必须转义,但不允许]]>字符串。
]
]>在PI ]]>中没有必要转义,但不允许]]>字符串。
Esoterica(0.1%重要记住)
逃逸]]>为]]>,除⾮]]>结束CDATA部分。
(此规则通常适⽤于字符数据 - 甚⾄在CDATA部分之外。)
kjhughes answered 2019-01-14T17:40:53Z
5 votes
有五个预定义的实体:
< represents "
> represents ">"
& represents "&"
' represents '
" represents "
“所有允许的Unicode字符都可以⽤数字字符引⽤表⽰。”例如:
中
⼤多数控制字符和其他unicode范围都被明确排除,这意味着(我认为)它们不会出现转义或直接:
Tim Cooper answered 2019-01-14T17:41:41Z
3 votes
这取决于具体情况。 对于内容,它是&lt; 和&amp;,和]]&gt;(虽然字符串为3⽽不是⼀个字符)。 对于属性值,它是&lt; 和&amp;和“和'。对于CDATA,它是]]&gt;。
把友情留在⽆盐 answered 2019-01-14T17:42:03Z
-3 votes
只有&lt; 和&amp; 如果要处理字符数据⽽不是标记,则需要进⾏转义:
Questionless answered 2019-01-14T17:42:31Z
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论