码迷,mamicode.com
首页 > Web开发 > 详细

VB下对HTML元素的操作

时间:2015-11-16 06:10:40      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:

<!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 <> 3 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值说明

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

VB下对HTML元素的操作

标签:

原文地址:http://www.cnblogs.com/xiii/p/4967953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!