自媒体
设为首页
收藏本站
论坛
BBS
门户
Portal
互联网+
标签云
关于我们
购买用户组
登录
立即注册
登录
立即注册
得知资讯
SEO/SEM
直播带货
电子商务
Ai资讯
得知互动
»
论坛
›
站长技术交流
›
建站交流
›
大话html dom与xml dom的区别与联系
返回列表
发新帖
网页制作
大话html dom与xml dom的区别与联系
303.2k
10
swmozowtfl
Lv.18
发表于
2015-7-14 22:21:30
|
湖北
|
查看全部
阅读模式
本文内容的主题便是,为什么开发者要认为“dom level 1规范的架构”是至关重要的,其突出的重要性在哪里等等,以及还有html dom和xml dom之间微妙的区别及内在的联系。
1 D3 X1 t7 K9 B4 R& l* H2 s, S8 M
w3c所制订的dom level分为两大模块:core和html。第一个大模块是core核心,w3c规范是这样描述core的:满足软件开发者和web脚本编写者,访问和操控产品项目中包含的可解析的html和xml内容。
4 }. B+ x, P8 N8 N6 l @
第二个html模块,规范描述为:html之中特定元素的功能,和恰到好处的、易用的、针对常见性任务的html文档操作机制。
j- h R5 b6 z* \ g; ]
以上可见两者的重要性。同时html模块的意义也在于,解决了向后兼容的问题,这在当今符合dom level 1的浏览器中已经可以提供适应的解决方案。
9 ^# C" i/ d( i x$ O9 j8 L* A6 ~2 n
按照这样的说法,如果您仍然不能理解上述的要义,我们则可以这样认为,html文档可以使用core api和html api两者;而xml文档只能使用core api。换句话说,html与xml重叠的部分有core api,而html api则是不能共享的部分,顾名思义限于html文档所使用。这是我们认识core/html的初步认识。
, d* e$ e! x8 x1 n& B5 i) A( \9 X
理解dom level 1 core
% B. p2 t& I6 @. A" ?3 E
理解dom level 1 core之要义实质在于将core看待成为许多节点(nodes)而组成的文档(document),也就是说,此文档结构中可允许存在着大量的条目项,其每一项都可理解为“节点”。讨论该结构可以以两个方面入手:一、一切皆是节点对象(node object,扁平化的角度去理解,flattened view,乃适合于多态下的接口);二、每个对象继承于基类节点,实现了节点的接口(interface,oo继承的角度去理解)。请观察一下这段html:
: T- B* }5 @) @7 d; a
view plaincopy to clipboardprint?
, G1 t! ? W6 c H5 ?6 [& R$ y+ _
<div id=mydiv>hello world</div>
2 I: D3 c- J' o2 k/ `& ^
<div id=mydiv>hello world</div>
3 |) u( q: J+ v/ P2 L( E: W; a Q
这是一个闭合的div标签。从dom level 1的层面来分析可以有以下几点内容:
+ g$ K' x+ U7 V" D" O7 G+ N
◆标签div可作为“节点对象node object(扁平化角度,前面已述)”,或者元素对象element object(继承的角度 - 元素继承于node)。
- A6 ` D% b6 A" i! P9 G
◆节点属性id也可作为“节点对象node object(扁平化角度)”,或者属性对象attr. object(继承的角度 - attr继承于node)。
( c; V) i/ D; K4 g) \3 u& p* b8 {
◆文本“hello world”也可作为“节点对象node object(扁平化角度)”,字符串对象characterdata对象(继承的角度 - characterdata继承于node),text文本对象(继承的角度 - text继承于characterdata)。
" Y( g) @7 {- L) c% G1 U, R
稍微归纳一下,就是dom 1 core部分中一切皆是节点,节点以及其接口都可实现在每个对象身上(从继承的角度理解出发),实现了节点接口才可以有节点的属性、方法。——这是我们理解的前提。然后,根据特定的节点类型的不同,其接口的属性和方法都是不同的,视乎dom对该节点的设计而定。
7 q+ Q9 J1 l1 G
理解dom level 1 html
: _; J( P( m# I
我们日常工作的时候,跟html文档打交道,其实就是属于w3c所规定的dom level 1 html模块内的处理工作。html dom的特性和方法不是标准的dom实现,是专门针对html同时也让一些dom操作变的更加简便。html模块集中表现在htmlelement接口上,即为全体元素类型的对象所实现的接口。就该文讨论的范围而言,htmlelement接口的参与形式与上述的 node节点接口非常地相似。一旦引入了oo设计观,只要实现了htmlelement接口的对象,就可以定义它为元素了。一份html文档有相当多的都是元素,当然还有,表示文档本身的htmldocument和集合容器htmlcollection等等。
2 ?# i8 W- ^1 Z3 R5 M/ \9 W4 e
因此,要准确理解dom 1 html的模块,必须认识其接口是基于元素的(element-based),而不是基于节点的(node-based)。那样的话,元素方式与节点方式到底又有什么区别呢(element v.s node),应该如何界定两者呢?例如节点属性(properties of elements),当在“基于元素”的语境中,就是“属性(attributes)”,并非独立的节点对象。——尽管按照某个角度讲,元素是节点的一种特例,我们仍可保留“节点”这一说法,一个标签(tag)便是一个 “节点”。假如我们要得到id属性的字符串的值是什么,采用dom 1 core的方式就是:
9 A- E6 O4 h- s2 ~; S
view plaincopy to clipboardprint?
; e, `9 G# E1 |( [$ a
myelement.attributes[id].value; // 从node接口提供的属性
x V8 s% }# C
myelement.attributes[id].value; // 从node接口提供的属性
% B2 h7 g4 z( j: b/ ]3 P6 t& C# S6 c
等于下面的方法:
3 K( q" k$ W) k$ r% _' w
view plaincopy to clipboardprint?
, F5 l7 Q7 i Y$ j) b: }
myelement.getattributes(id); // 从element实现的方法返回
/ ]5 B. q6 [2 k% f1 v8 o
myelement.getattributes(id); // 从element实现的方法返回
& C' {# K/ {( P5 y: S. h
但使用dom 1 html方式的话,我们仅仅如此:
$ }6 z) E; V. D7 I
view plaincopy to clipboardprint?
3 s& d4 T, ~) b
myelement.id;
: l% X/ d+ \# W4 t5 c& L4 ~
myelement.id;
% k2 N w) n, X/ D/ T. P* ~
这般就可以获取id了。此时此刻,你可能会认为,xml文档本身就不一定缺省有id的属性,而因为有你所说的htmlelement.id属性预先定义在api中,当然html中的每个元素就有id的属性啦——这里的意思没有错,也不妨碍我们的理解。的确全体的html元素均有id一项的属性,不管htmldivelement\htmlimageelement\……
" T# W. s+ S8 W9 p! p$ E' S! k
core or html module?
4 l8 [3 J0 J& _' q8 O# V
既然这样,那我应该使用core的api,还是html模块的api?对于html的文档来说,用core或html moduel实际差别不大。本来我们一直都不太强调这种界定,以致忽略了它们细微的差异。如果我们觉得还是模棱两可的话,我们可进一步查探它们的明细。个人认为处理xhtml并使用core api这样更能够说明xhtml的“x”,即表明这份html就是一份标准的xml文档,以便与原有html 4.1从语义上区别开来。但请记住,当处理一份xml结构的文档的时候,自然而然就是采用core去处理。通过xhmlhttprequest请求执行后所返回的responsexml结果,只能使用core的api去处理分析,就不能够采用html的了。
* x# j/ X) a; D$ x3 p v& g8 u# @
小结
2 J( l# v- e. U6 {' A$ [9 K6 a
通过文本开发者应该明白到,html dom与xml dom之间,既有区别,又有联系。一般而言,除了上述比较外,须值得一提的就是,html是可以允许不well-form的,xml就不行。
/ v( P$ i n8 I: q8 W1 y
* x$ H e9 h1 |# Y/ B3 W( m
更多网页制作信息请查看: 网页制作
document
,
解决方案
,
浏览器
,
开发者
,
主题
回复
转播
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
猜你喜欢
淘宝纵贯车推广是带不动搜刮流量的!
你不得不知的进步用户黏度“七年夜窍门”
怎么样才干设计出好的H5网站模板
海瑶SEO:网站索引量降落常见原因及SEO解决计划
网站扶植:更好地解决网站兼容性优化
解密百度点击算法的有用性-海瑶SEO书院
选择响应式建站东西须要留意的几点
什么样的网站可以或许给企业带来利润
郑刚:好简单的自动赚钱模式和流程!
海瑶SEO:网站索引量降落常见原因及SEO解决计划
回复
|
共 10 个
alapScady
发表于
2016-2-8 16:02:29
|
美国
|
查看全部
也有啊,前天不是你也到一个很狂的贴里去了吗?
回复
支持
反对
使用道具
举报
显身卡
tohme
发表于
2016-2-8 16:02:00
|
加拿大
|
查看全部
呵呵 我可不敢~~~~
回复
支持
反对
使用道具
举报
显身卡
wwzcdenleclv
发表于
2016-2-8 16:02:34
|
印度
|
查看全部
笨点也好~~~~
回复
支持
反对
使用道具
举报
显身卡
Mqokjdvq
发表于
2016-2-8 16:02:15
|
INNA
|
查看全部
我帮不了你
回复
支持
反对
使用道具
举报
显身卡
mwxny
发表于
2016-2-8 16:02:04
|
美国
|
查看全部
手机版的得知互动论坛好强大
回复
支持
反对
使用道具
举报
显身卡
Acropozelan
发表于
2016-3-23 21:29:45
|
美国
|
查看全部
俺灌的不是水,是寂寞啊!
回复
支持
反对
使用道具
举报
显身卡
buingeEvineus
发表于
2016-3-23 21:29:28
|
INNA
|
查看全部
什么什么啊??
回复
支持
反对
使用道具
举报
显身卡
GoodyFouppy
发表于
2016-3-23 21:29:45
|
美国
|
查看全部
看起来好~~像啊~~~~~
回复
支持
反对
使用道具
举报
显身卡
gevaemaidovef
发表于
2016-3-23 21:30:02
|
中国
|
查看全部
我也不知道了~~你把我问蒙了 呵呵
回复
支持
反对
使用道具
举报
显身卡
wwdu926a
发表于
2016-3-23 21:29:59
|
美国
|
查看全部
呵呵 那是啊~~
回复
支持
反对
使用道具
举报
显身卡
返回列表
发新帖
回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
swmozowtfl
楼主
Lv.18
特级领导
主题
回帖
0
积分
45156
+ 关注
发消息
创业知识盘点创业者需具备的九大实力
2016-08-01
创业知识初次创业,该怎样评估和应对风险?
2016-08-01
创业知识初创企业最容易犯的几个用户体验错误
2016-08-01
创业之前先弄明白这3个问题
2016-07-28
创业者犯的六个可避免的错误
2016-07-28
更多作者好帖
Fashion 热点
Ai优选商家寻找本地地推合作伙伴
101
求项目与合作
拥抱AI搜索新时代!GEO优化成为企业流量增
707
网络资讯
GEO优化如何让企业流量翻倍?
606
网络资讯
Vogue 新鲜事
GEO 优化:解决商家 “获客难” 的新解法,2025 年流量争夺的关键
香港站群服务器做业务的五大核心优势,ES机房助力出海稳赢
揭秘!这3家外卖代运营公司,为何能让店铺月销暴涨10倍
ES机房:美国服务器建站的核心优势
美港双核,远控免杀的黄金搭档
Kimi K3发布引发美股震荡!开源3万亿大模型如何改变中美AI格局?
外卖代运营公司鱼龙混杂,这5家靠谱公司你不能错过!
2025年电子电器行业AI获客实测:第3招90%的人不知道!
上一主题
下一主题
浏览过的版块
网络营销
SEO技术交流
新电商社区
网络资讯
创业知识
得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
快捷导航
道具
举报与投诉
Archiver
小黑屋
Copyright © 2026
得知互动-专注Ai与站长技术交流社区-Ai交流平台
版权所有
All Rights Reserved.
Powered by
Discuz!
X5.0
鄂ICP备15006301号-5
|
鄂公网安备 42018502006730号
首页
论坛
发布
消息
我的
关灯
在本版发帖
扫一扫添加QQ客服
返回顶部
快速回复
返回顶部
返回列表