Eva*_*oll 10 html5 html-entities
XHTML5是否支持 和等字符实体—.在工作中,我们可以要求特定的软件访问网站的管理员端,人们要求多文件上传.对我来说,这是一个很容易理由要求迁移到FF 3.6+,所以我很快就会这样做.我们目前使用XHTML 1.1,在转移到HTML5时,我只遇到字符实体名称的问题......有没有人有这方面的文档?
我看到WHATWG规范上有一个列表,但我不确定它是否会影响文件application/xhtml+xml.无论如何,两个提到的Chromium nightly和FF 3.6中的触发错误.
bob*_*nce 12
XHTML5没有DTD,因此XML解析器将看不到任何实体定义(除了预定义的定义).如果您想使用实体,则必须在内部子集中为自己定义实体.
<!DOCTYPE html [
<!ENTITY mdash "—">
]>
<html xmlns="http://www.w3.org/1999/xhtml">
... — ...
</html>
Run Code Online (Sandbox Code Playgroud)
(当然,如果您将浏览器提供给它们,则使用内部子集可能会使浏览器text/html跳起来.不允许在非XHTML HTML5文档中发送内部子集.)
HTML5 维基目前推荐:
不要使用XHTML实体引用(除5个预定义的实体:
&,<,>,"和')
我同意这个建议,不仅适用于XHTML5,还适用于XML和HTML.今天没有理由将HTML实体用于任何事情.直接键入的Unicode字符对于每个人来说都更具可读性,并且&#...;当您无法保证8位/编码 - 清除传输时,字符引用可用于那些令人遗憾的情况.(由于没有为大多数Unicode字符定义HTML实体,所以无论如何都需要它们.)
我需要对HTML 5进行XML验证.HTML 4和XHTML只有一个平庸的250个左右的实体,而当前的草案(2012年1月)有超过2000个.
GET 'http://www.w3.org/TR/html5-author/named-character-references.html' |
xmllint --html --xmlout --format --noent - |
egrep '<code|<span.*glyph' | # get only the bits we're interested in
sed -e 's/.*">/__/' | # Add some "__" markers to make e.g. whitespace
sed -e 's/<.*/__/' | # entities work with xargs
sed 's/"/\"/' | # xmllint output contains " which messes up xargs
sed "s/'/\'/" | # ditto apostrophes. Make them HTML entities instead.
xargs -n 2 echo | # Put the entity names and values on one line
sed 's/__/<!ENTITY /' | # Make a DTD
sed 's/;__/ /' |
sed 's/ __/"/' |
sed 's/__$/">/' |
egrep -v '\bapos\b|\bquot\b|\blt\b|\bgt\b|\bamp\b' # remove XML entities.
Run Code Online (Sandbox Code Playgroud)
您最终得到一个包含2114个实体的文件.
<!ENTITY AElig "Æ">
<!ENTITY Aacute "Á">
<!ENTITY Abreve "Ă">
<!ENTITY Acirc "Â">
<!ENTITY Acy "А">
<!ENTITY Afr "𝔄">
Run Code Online (Sandbox Code Playgroud)
将其插入XML解析器应该允许XML解析器解析这些字符实体.
2012年10月更新:由于工作草案现在有一个JSON文件(是的,我还在使用正则表达式),我将其用于单个sed:
curl -s 'http://www.w3.org/TR/html5-author/entities.json' |
sed -n '/^ "&/s/"&\([^;"]*\)[^0-9]*\[\([0-9]*\)\].*/<!ENTITY \1 "\&#\2;">/p' |
uniq
Run Code Online (Sandbox Code Playgroud)
当然,javascript相当于更强大,但不是每个人都安装了节点.每个人都有sed,对吗?随机样本输出:
<!ENTITY subsetneqq "⫋">
<!ENTITY subsim "⫇">
<!ENTITY subsub "⫕">
<!ENTITY subsup "⫓">
<!ENTITY succapprox "⪸">
<!ENTITY succ "≻">
Run Code Online (Sandbox Code Playgroud)
我五年前就问过这个问题。现在每个浏览器都支持 UTF-8。而且,UTF-8 的每次启动都包含对所有命名字符实体的字形支持。当前解决此问题的最正确的解决方案是根本不使用命名实体,而是仅提供服务提供UTF-8(严格)并在其中使用实际字符。
这是所有 XML 实体的列表。所有这些都有 UTF-8 字符替代品 - 这就是它们通常呈现的方式。
例如,采取
U+1D6D8, MATHEMATICAL BOLD SMALL CHI , b.chi
Run Code Online (Sandbox Code Playgroud)
我想在 xml 的某些变体中,您可能有&b.chi什么,搜索MATHEMATICAL BOLD SMALL CHI您会在 fileformat.info 上找到一些页面,其中包含列出了该字符。
或者,在 Windows 中您可以键入Alt+ 1 D 6 D 8(1d68d 来自 XML 实体表),或者在 Linux 中键入Ctrl+ Shift+u 1 D 6 D 8。
这将以正确的方式将字符放入您的文档中。
| 归档时间: |
|
| 查看次数: |
5409 次 |
| 最近记录: |