我在查找HTML标记的有效字符时遇到问题。
在这个(Is the at-sign (@) a valid HTML/XML tag character?)答案中,它说:
再看一下XML规范:
标签包含:
'<'名称(S属性)* S? '>'名称包括:
NameStartChar(NameChar)* NameStartChar包含:
“:”| [A-Z] | “_”| [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xFFFF] NameChar包含:
NameStartChar | “ - ”| “” | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] @符号为U + 0040
所以@符号在NameChar或NameStartChar中无效,因此 在名称中无效。
但是在HTML语法页面(http://www.w3.org/TR/html-markup/syntax.html#tag-name)上,它只说:
标签名称在元素开始标记和结束标记中使用以给出 元素的名称。 HTML元素都具有仅使用字符的名称 在0-9,a-z和A-Z范围内。
HTML标记名称中的valids字符是什么? HTML4,XHTML和HTML5之间是否存在差异?
答案 0 :(得分:0)
HTML文档必须符合HTML规范。 XML文档必须符合XML规范。 XHTML文档必须符合XML和HTML规范。
因此,对于XHTML文档,您必须从两个规范中获取有效字符的交集。由于XHTML基于XML规范,因此不允许在XML中禁止使用的字符。因此,XHTML中允许的字符始终是XML中的字符的子集。所以允许的字符来自XHTML规范。