[XHTML] XHTML well-form 知识小结
时间:2014-11-29 21:44 来源: 我爱IT技术网 作者:山风
为解决大部份网页都是含有错误的语法问题
W3C于1998年重组HTML小组,以XML的形式去重新描述HTML,而没有加入任何新元素。
这套规格后来便成为了“XHTML1.0”
使用XHTML的好处,在于可以用XML的well-form形式去明确定立元素间的关系
与HTML4.0区别开来
而XHTML也严谨地定义了一些语法
如:
所有element和property皆使用小写
所有property的value用引号来包覆
所有非空标签都需要有结束的标签
property和value都不能简化,使用property就需要指定其value
空的element也要有结束标签,不然就是要使用“ />”
<div name="main"><br /><hr /></div>
今天遇到一个问题,使用chrome浏览 一个网页时这个网址时,会发生error
Below is a rendering of the page up to the first error.
查看这个网页的source code,有一行这样写着
<tr><td align="center" bgcolor="#FFCC00">--> .jpg <--</td></tr>
有没有注意到竟然有“-->” 和"<--"
就是有"<" less than小于号和 “>”greater than大于号,
这样的情况可能会导致两个XHTML会认为是语法错误的问题
在W3C对XML的DTD文件中,针对特殊字符(special characters)有定义其该使用的html字符串,如 "<"小于号就要使用 "&#60;" 这样的一串
refer: http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_Special_characters
另一个问题则是,根据上一点,XHTML parser就会把">" "<"视为是元素的标签号,如若把那些小破折号都拿掉,变成 “ >.jpg< ”的话,更加会造成破坏well-form格式,一对小于大于号里,含有其他的小于大于号," <> ><<> "
当然在parse XML的过程中就会出错
由于HTML中没有明确限制一个开标签就要对应一个闭标签,所以html在遇到这类网页时,大部份情况下还是可以成功render的
当然,安全起见,在编写网页时,特殊符号就应该用html字符串来取代。
另外在Android device上测试过
从ICS(Android4.0) 之后的Browser就会显示有错误
而ICS之前的版本则可以正常显示出来
这说明了一点, Android ICS使用了XML parser来处理XHTML网页
而之前的版本则用HTML的parser来处理,以HTML parser一向高宽容性作风,就不会那么容易出错了.
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
