<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<div>
<ul class="lstbox">
<li class="lst_head"><span class="col_1">姓名</span><span class="col_2">邮箱</span><span class="col_3">生日</span></li>
<li class="lst_row"><span class="col_1">张三</span><span class="col_2"><a href="mailto:zhangsan@web.com" class="email">zhangsan</a></span><span class="col_3">80-5-1</span></li>
<li class="lst_row"><span class="col_1">李四</span><span class="col_2"><a href="mailto:lisi@web.com" class="email">lisi</a></span><span class="col_3">85-5-1</span></li>
<li class="lst_row"><span class="col_1">王五</span><span class="col_2"><a href="mailto:wangwu@web.com" class="email">wangwu</a></span><span class="col_3">90-5-1</span></li>
<li class="lst_row"><span class="col_1">赵六</span><span class="col_2"><a href="mailto:zhaoliu@web.com" class="email">zhaoliu</a></span><span class="col_3">95-5-1</span></li>
</ul>
</div>
</body>
</html>

如上面的页面源码,若要提取出姓名,邮箱和生日,可下面这样做

Private Sub Command1_Click()
Dim str As String
Dim li, cd
Dim c_name As String
'遍历元素<li>
For Each li In Dom.Document.getElementsByTagName("li")
'用判断忽略掉列首名称的<li>行
If li.classname = "lst_row" Then
'遍历<li>下的节点
For Each cd In li.childNodes
'判断是否为元素节点
If cd.nodeType <> Then
If cd.classname = "col_2" Then
'如果是第2列的<span>,那么再用firstChild取出第一个元素节点<a>
str = str & cd.firstChild.href & " "
Else
'其他列直接输出文本
str = str & cd.innertext & " "
End If
End If
Next
str = str & vbCrLf
End If
Next
Print str
End Sub

其实就很简单的东西,主要是对HTML不是很熟悉,对node和element有点晕,下面是nodeType值说明

Element 代表元素 Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference
Attr 代表属性 Text, EntityReference
Text 代表元素或属性中的文本内容。 None
CDATASection 代表文档中的 CDATA 部分(不会由解析器解析的文本)。 None
EntityReference 代表实体引用。 Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
Entity 代表实体。 Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
ProcessingInstruction 代表处理指令。 None
Comment 代表注释。 None
Document 代表整个文档(DOM 树的根节点)。 Element, ProcessingInstruction, Comment, DocumentType
DocumentType 向为文档定义的实体提供接口 None
DocumentFragment 代表轻量级的 Document 对象,能够容纳文档的某个部分 Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
Notation 代表 DTD 中声明的符号。 None

最新文章

  1. Andrew Ng在coursera上的ML课程_知识点笔记_(1)
  2. 给网页 title添加图片。
  3. java.math.RoundingMode 几个参数详解
  4. Linux命令行上传文件到百度网盘
  5. Graphics 导出图片使用【这个主要是画图类图的使用,记录一下】
  6. spring+mongo
  7. Javascript构造函数与prototype
  8. Boost的状态机库教程(1)
  9. Note_Master-Detail Application(iOS template)_02_YJYAppDelegate.m
  10. oracle SQL Develop导出数据库中的表格数据到excel
  11. sublimeText3安装package control和禁止弹出更新下载弹窗
  12. poj1828
  13. PHP面试题之小杂鱼
  14. 一.CPU,Mem过高怎么办 --这是个开始
  15. 【Java疑难杂症】有return的情况下try catch finally的执行顺序
  16. C++_day7_继承
  17. SpringMVC入门学习(二)
  18. 利用阿里云的源yum方式安装Mongodb
  19. (转)c# String与StringBuilder
  20. JVM总结-字节码

热门文章

  1. 面试题目——《CC150》中等难题
  2. 查看修改Linux时区和时间
  3. PHP读写文件
  4. 莫比乌斯环-vtkTriangleStrip
  5. Android通过名称找图片
  6. VS2008 Debug与Release的本质区别(转)
  7. synchronized在jvm底层是如何实现的
  8. CDN的特点
  9. eclipse for php现有项目不能导入问题
  10. Spring预处理