所谓超文本,因为它可以加入图片、声音、动画、影视等内容,因为它可以从一个文件跳转到另一个文件,与世界各地主机的文件连接
HTML的基本结构
<HTML>
<HEAD>
头 部 信 息
</HEAD>
<BODY>
文 档 主 体, 正 文 部 分
</BODY>
</HTML>
纯文本就很显然知道了
如果要发邮箱的话,纯本文件比较可靠一些
多行文本框<textarea>用来创建一个可以输入多行的文本框 多行文本框标签对<textarea></textarea>用于表单标签<form></form>之间。多行文本框<textarea>的属性属性描述name文字区块的名称,作识别之用cols文字区块的宽度。rows文字区块的列数,即其高度wrap定义输入内容大于文本域时显示的方式,可选值如下:*默认值是文本自动换行;当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现; *off,用来避免文本换行,当输入的内容超过文本域右边界时,文本将向左滚动;*virtual,允许文本自动换行。当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现; *physical,让文本换行,当数据被提交处理时换行符也将被一起提交处理。 这里列与行是以字符数为单位的。首先,解析 HTML 有两种办法:一种是基于事件回调的:比如 python 的 HTMLParser 和 PHP 的 SimpleXML。它在遇到 starttag、endtag 以及遇到 text node 时就调用你指定的函数。
第二种是建立起一个完整的 DOM 树,让你进行 DOM *** 作。
现在的问题就是应该怎么定义“不同”。
如果你指的只是 text node 的 text content 不同,而 node tree 的结构完全相同的话,就很容易了,此时你可以使用第一种解析 HTML 的方法;只需要把第一个页面所有的 text node 按顺序存下来;然后把第二个 HTML 的所有 text node 与之一一比对就 ok 了。
如果页面结构都不同的话,就会复杂些。这种情况下可以用第二种解析 HTML 的方法建立起 DOM 树;然后可以一层一层递归地比对innerHTML:具体来说,比如你先比对<body>的 innerHTML。如果不一致的话,就一一比对其下所有元素的innerHTML。然后把其中innerHTML相同的节点忽略;对innerHTML不相同的节点再递归地进行处理。如果遇到某个元素在两个文档里的childNode数量不一的情况……那就看你想怎么办了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)