整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML文档的访问端口DOM (Document Object Model)

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

第五节 HTML文档的访问端口DOM (Document Object Model)

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

1 HTML DOM (Document Object Model) 对象集合

每个载入浏览器的 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对象。

2 HTML DOM 文档的节点及文档树

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

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

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

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

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

5)注释是注释节点


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


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

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


Sub MYNZ()

Dim ie, dmt, bd

Set ie = CreateObject("InternetExplorer.Application") '创建一个IE对象

With ie

.Visible = True '显示它

.navigate "http://www.baidu.com" '加载某个页面

Do Until .ReadyState = 4 '等待页面加载完毕

DoEvents

Loop

Set dmt = .document '将IE浏览器加载的页面文档,赋予dmt变量

Set bd = dmt.body '将文档的body赋予bd变量

End With

End Sub


代码截图:

按F8键运行截图:

3 HTML DOM 文档的对象属性

属性是节点(HTML 元素)的值,您能够获取或设置。所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。我们看看下面一些常见的属性:


1)innerHTML 属性 对象内部的HTML代码,是获取元素内容的最简单方法。innerHTML 属性对于获取或替换 HTML 元素的内容很有用。

下面的代码获取 id="intro" 的 <p> 元素的 innerHTML:

<script>

var txt=document.getElementById("intro").innerHTML;

document.write(txt);


2)OuterHtml:对象的HTML代码,包括对象本身的HTML标签


3)innerText:对象内部的文本


4)OuterText:对象的文本,包括对象本身的文本


5)nodeName 属性 nodeName 属性规定节点的名称。

nodeName 是只读的

元素节点的 nodeName 与标签名相同

属性节点的 nodeName 与属性名相同

文本节点的 nodeName 始终是 #text

文档节点的 nodeName 始终是 #document


注释:nodeName 始终包含 HTML 元素的大写字母标签名。


6)nodeValue 属性 nodeValue 属性规定节点的值。

元素节点的 nodeValue 是 undefined 或 null

文本节点的 nodeValue 是文本本身

属性节点的 nodeValue 是属性值


7)nodeType 属性 nodeType 属性返回节点的类型。nodeType 是只读的。

比较重要的节点类型有:


元素类型 NodeType

元素 1

属性 2

文本 3

注释 8

文档 9


以上只是给出了属性值,大家在使用的时候要注意。


本节知识点回向:


什么是HTML DOM文档的属性,常用的属性有哪些。


本节参考文件:008工作表.xlsm

积木编程的思路内涵:

在我的系列书籍中一直在强调"搭积木"的编程思路,这也是学习利用VBA的主要方法,特别是职场人员,更是要采用这种方案。其主要的内涵:

1 代码不要自己全部的录入。你要做的是把积木放在合适的位置然后去修正代码,一定要拷贝,从你的积木库中去拷贝,然后修正代码,把时间利用到高效的思考上。

2 建立自己的"积木库"。平时在学习过程中,把自己认为有用的代码放在一起,多积累,在用到的时候,可以随时拿来。你的积木库资料越多,你做程序的思路就会越广。

VBA的应用界定

VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!

我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程:

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,初学必备;

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程的视频讲解,听元音更易接受。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。

第六套教程:《VBA信息获取与处理》是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。

大家可以根据以上资料1→3→2→6→5或者是4→3→2→6→5的顺序逐渐深入的逐渐学习。教程提供讲解的同时提供了大量的积木,如需要可以WeChat: NZ9668


学习VBA是个过程,也需要经历一种枯燥的感觉

如太白诗云:众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。利人就是利己。这些教程也是为帮助大家起航,助上我自己之力,我的上述教程是我多的经验的传递,

"水善利万物而不争",绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。茶,满也好,少也好,不要计较;浓也好,淡也好,其中自有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。在后疫情更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。学习时微而无声,利用时则巨则汹涌。

每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将一阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着:


浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,

忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!


回向学习利用VBA的历历往事,不胜感慨,谨以这些文字给大家,分享我多年工作实际经验的成果,随喜这些有用的东西,给确实需要利用VBA的同路人。


分享成果,随喜正能量

、通常访问的网站是保存在远程的服务器还是本地电脑,你是怎么判断的?

保存在远程的服务器,判断的标准和依据在网络是否连通的情况下能否正常访问。

二、什么叫服务器?

一台运行在网络上有着专门的用途计算机。比如网站服务器、数据库服务器、FTP服务器、游戏服务器、通讯服务器、多媒体服务器、教学服务器、……。

三、搭建属于我们自己的网站服务器

安装IIS(Internet Information Server)或APACHE来帮我们管理网站。

四、其他知识点:

1、IT,Information Technoligy,信息技术。包含硬件、通信、网络、数据传输、软件开发等领域。

2、查看本机的IP地址: 开始->运行 (windows+R)->cmd->ipconfig /all

3、WINDOWS NT:New Technoligy,新技术。包含me、95、98、XP、VISTA、2000、2003、2008、2012、2013、7。

4、UNIX:MAC IOS、ANDROID、LINUX、RED HAT LINUX。

5、打开控制面板:windows+r->control

6、IIS运行快捷键:windows+r->inetmgr (internet managerment root)

7、WEB:网页,是一个单独的页面,扩展名可以是xxx.html、xxx.htm、xxx.jsp、xxxx.aspx、……。

8、WEBSITE:网站,围绕一个主题所有网页的集群。

9、本机的IP地址:127.0.0.1,或本机的域名:localhost

10、域名:本身就是一个无意义的字符串,只是为了方便人们记忆和访问对应的网站而提出的概念。

11、测试网络是否连通指令:ping 目标域名。

12、网站访问请求相应的流程:

第一大历史阶段的流程

WEB2.0阶段而是这样的流程

13、访问完整流程格式:

以访问www.cwhello.com,由域名提供商解析成完成在以下格式

http://服务器IP地址:端口/访问网站下具体哪一个页面,例如:

http://123.112.113.114:80/index.php

http:// 超文本传输协议,访问服务器的前缀,代表访问的是网站,而不是其他的。又比如ftp:// 文件传输协议,代表访问的服务器是文件服务器。

端口(Port):就相当于刚才例子的水龙头,控制资源的打开与关闭。默认web 80,和前缀一起省略;ftp 21、MS SQL 1433、mysql 3306

首页(扉页):在网站中,选择其中一个页面布局、设计非常精美,让用户留下美好的影响,类似与门面,这个页面称为首页。一般起名为index.xxxx、default.xxx。在服务器中可以进行设置,顺序是从上往下。

14、访问控制

目录浏览权限:没有设置首页,访问时直接指明域名,会显示网站路径。

访问网站常见的错误代码

403 没有访问权限 Deny(拒绝) Access(访问) Forbidden(不允许)

404 路径错误

500 内部代码错误,比如PHP等

15、API,Application Programm Interface,应用程序接口。

16、DLL,Dynamic Linked Libarary,动态链接库。

17、PHP最佳运行环境:LAMP=Linux +Apache+Mysql+PHP

WAMP=WINDOWS+APache+Mysql+php

18、APACHE安装配置:

默认网站根目录是 安装目录/htdocs 下

配置文件 安装目录/conf/httpd.conf

修改配置文件可以实现

网站根目录documentroot ,路径设置不能有反斜杠\,修改网站根目录以后默认没有访问,解决办法:

1.修改directory 节点后面的路径为网站根目录

2.或者直接修改directory节点下权限allow from all

修改端口:listen 1234

首页支持:directoryindex index.html index.php

添加对PHP的解析:

LoadModule ph5_module “对应版本apache的动态链接库”

AddType application/x-httpd-php .php

HTML 使用超级链接与网络上的另一个文档相连。几乎可以在所有的网页中找到链接。点击链接可以从一张页面跳转到另一张页面。

HTML 链接

如何在HTML文档中创建链接。

(可以在本页底端找到更多实例)

HTML 超链接(链接)

HTML使用标签 <a>来设置超文本链接。

超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。

当您把鼠标指针移动到网页中的某个链接上时,箭头会变为一只小手。

在标签<a> 中使用了href属性来描述链接的地址。

默认情况下,链接将以以下形式出现在浏览器中:

  • 一个未访问过的链接显示为蓝色字体并带有下划线。

  • 访问过的链接显示为紫色并带有下划线。

  • 点击链接时,链接显示为红色并带有下划线。

注意:如果为这些超链接设置了 CSS 样式,展示样式会根据 CSS 的设定而显示。

HTML 链接语法

链接的 HTML 代码很简单。它类似这样::

<a href="url">链接文本</a>

href 属性描述了链接的目标。.

实例

<a href="http://www.runoob.com/">访问菜鸟教程</a>

上面这行代码显示为:: 访问菜鸟教程

点击这个超链接会把用户带到菜鸟教程的首页。

提示: "链接文本" 不必一定是文本。图片或其他 HTML 元素都可以成为链接。

HTML 链接 - target 属性

使用 target 属性,你可以定义被链接的文档在何处显示。

下面的这行会在新窗口打开文档:

实例

<ahref="http://www.runoob.com/"target="_blank">访问菜鸟教程!</a>

HTML 链接- id 属性

id属性可用于创建在一个HTML文档书签标记。

提示: 书签是不以任何特殊的方式显示,在HTML文档中是不显示的,所以对于读者来说是隐藏的。

实例

在HTML文档中插入ID:

<a id="tips">有用的提示部分</a>

在HTML文档中创建一个链接到"有用的提示部分(id="tips")":

<a href="#tips">访问有用的提示部分</a>

或者,从另一个页面创建一个链接到"有用的提示部分(id="tips")":

<a href="http://www.runoob.com/html/html-links.html#tips">

访问有用的提示部分</a>

基本的注意事项 - 有用的提示

注释: 请始终将正斜杠添加到子文件夹。假如这样书写链接:href="http://www.runoob.com/html",就会向服务器产生两次 HTTP 请求。这是因为服务器会添加正斜杠到这个地址,然后创建一个新的请求,就像这样:href="http://www.runoob.com/html/"。

图片链接

如何使用图片链接。

在当前页面链接到指定位置

如何使用书签

跳出框架

本例演示如何跳出框架,假如你的页面被固定在框架之内。

创建电子邮件链接

本例演示如何如何链接到一个邮件。(本例在安装邮件客户端程序后才能工作。)

建电子邮件链接 2

本例演示更加复杂的邮件链接。

HTML 链接标签

标签描述
<a>定义一个超级链接

如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!