数据结构论坛

注册

 

发新话题 回复该主题

HTML文档的访问端口DOMDocum [复制链接]

1#

这节内容是“VBA信息获取与处理”教程中第八个专题“VBA与HTML文档”的第五节。,希望想掌握这方面知识的朋友能参考我的教程学习。

第五节HTML文档的访问端口DOM(DocumentObjectModel)

大家好,我们继续对HTML文档进行学习,在前几节中我们认识了网页文档上面的各种元素,那么我们又该怎么访问他们呢,是如何实现呢?其实,HTML文档,提供了访问其元素的端口,这就是HTMLDOM,其定义了一套标准的针对HTML文档的对象访问或操作的机制。HTMLDOM定义了所有HTML元素的对象和属性,以及访问它们的方法。换言之,HTMLDOM是关于如何获取、修改、添加或删除HTML元素的标准。

1HTMLDOM(DocumentObjectModel)对象集合

每个载入浏览器的HTML文档都会成为Document对象。Document对象使我们可以从脚本中对HTML页面中的所有元素进行访问。Document对象是HTML文档的根节点。

特别注意:Document对象是Window对象的一部分,可通过window.document属性对其进行访问。

集合  描述

all[]  提供对文档中所有HTML元素的访问。

anchors[]  返回对文档中所有Anchor对象的引用。

applets  返回对文档中所有Applet对象的引用。

forms[]  返回对文档中所有Form对象引用。

images[]  返回对文档中所有Image对象引用。

links[]  返回对文档中所有Area和Link对象引用。

VBA直接支持调用的对象有限,如下:

对象  描述

Document  代表整个HTML文档,可被用来访问页面中的所有元素

Anchors  代表a元素集合

Body  代表body元素

Forms  代表form元素集合

Frames  代表frame元素或iframe元素集合

Images  代表img元素集合

Links  代表link元素集合

Options  代表option元素集合(select元素里面可以直接使用)

Cells  代表td元素集合(table元素里面可以直接使用)

Rows  代表tr元素集合(table元素里面可以直接使用)

All  对象集合,提供对文档中所有HTML元素的访问。

上述VBA支持直接调用对象的元素,调用起来就非常方便了,可以用序号调用,例如forms(0),也可以按名称/ID调用,例如forms(“名称/ID”)。其他没法直接调用对象的元素,可以间接从通用all对象集合中去调用该元素或该元素对应的dom对象。

2HTMLDOM文档的节点及文档树

在HTMLDOM中,所有事物都是节点。DOM是被视为节点树的HTML文档的每一部分都是节点,整个文档被定义为一个文档节点,每个标签是一个元素节点,包含在元素中的文本是文本节点,每一个元素的属性是一个属性节点。如下:

1)整个文档是一个文档节点

2)每个HTML元素是元素节点

3)HTML元素内的文本是文本节点

4)每个HTML属性是属性节点

5)注释是注释节点

HTMLDOM将HTML文档视作树结构。这种结构被称为节点树,这时一个非常形象的比喻,根节点就是html,主干就是body等,枝干就是body内含的各种元素节点,叶子和花就是元素节点关联的元素的属性(属性节点)或内含文本(文本节点)。

通过HTMLDOM,树中的所有节点均可通过JavaScript进行访问。所有HTML元素(节点)均可被修改,也可以创建或删除节点。节点树中的节点彼此拥有层级关系。父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

网页文档,可以说是由元素组合而成的,也可以说是由节点连接而成的树构造的。节点是文档树结构中特有的名词,元素是节点,但是节点不一定是元素,节点还有文档节点、文本节点、属性节点等;元素是元素节点的扩展,元素可以拥有属性还有文本。初学者不是很必要纠结元素和节点的区别,这个需要甚至数据结构、类和继承等知识。可大致理解为,同一个htmldom对象,提供的两个不同接口。如下的程序,你会发现,他既有支持node(节点)的相关属性和方法,也提供了element(元素)的相关属性和方法。

SubMYNZ()

Dimie,dmt,bd

Setie=CreateObject(InternetExplorer.Application)创建一个IE对象

Withie

.Visible=True显示它

.navigate

分享 转发
TOP
发新话题 回复该主题