VBScript GetElementsByTagName 方法
最后修改于 2025 年 4 月 9 日
VBScript 中的 GetElementsByTagName
方法是 DOM (文档对象模型) 接口的一部分。它从 HTML 或 XML 文档中检索具有指定标签名的所有元素。此方法返回一个可以迭代的元素集合。它常用于网页抓取和文档操作。
GetElementsByTagName
可以在不知道元素 ID 或类名的情况下实现高效的元素选择。它同时适用于 HTML 和 XML 文档。本教程将通过实际示例介绍 GetElementsByTagName
的用法。
GetElementsByTagName 方法概述
GetElementsByTagName
方法接受一个参数:要搜索的标签名。它返回一个匹配指定标签的元素集合。该方法在 VBScript 的文档对象和单个元素节点上均可用。
主要功能包括 HTML 文档中的不区分大小写匹配以及对通配符选择的支持。它会搜索其被调用的元素的所有后代元素。理解此方法有助于创建健壮的文档处理脚本。
基本标签名选择
此示例演示了 GetElementsByTagName
选择所有段落元素的、最简单的用法。它展示了如何访问返回的集合并显示元素内容。该脚本在内存中处理 HTML 字符串。
Set htmlDoc = CreateObject("htmlfile") htmlDoc.write "<html><body><p>First paragraph</p><p>Second paragraph</p></body></html>" Set paragraphs = htmlDoc.getElementsByTagName("p") For Each para In paragraphs WScript.Echo para.innerText Next Set htmlDoc = Nothing
该脚本创建了一个包含两个段落的 HTML 文档。GetElementsByTagName
返回所有段落元素。循环显示每个段落的文本内容。这演示了基于标签的基本元素选择。
访问元素属性
此示例展示了如何从通过标签名选定的元素中检索属性。它演示了如何访问锚点标签的 href 属性。该脚本处理一个包含链接的简单 HTML 文档。
Set htmlDoc = CreateObject("htmlfile") htmlDoc.write "ExampleGoogle" Set links = htmlDoc.getElementsByTagName("a") For Each link In links WScript.Echo "Text: " & link.innerText & ", Href: " & link.href Next Set htmlDoc = Nothing
该脚本创建了一个包含两个锚点标签的 HTML 文档。GetElementsByTagName
选择所有锚点元素。循环显示每个链接的文本和 URL。这展示了如何使用元素属性。
嵌套元素选择
此示例演示了如何选择特定容器内的元素。它展示了如何将 GetElementsByTagName
的范围限制在 div 元素内。该脚本处理一个具有嵌套结构的 HTML 文档。
Set htmlDoc = CreateObject("htmlfile") htmlDoc.write "Content paragraph
Outside paragraph
" Set contentDiv = htmlDoc.getElementById("content") Set contentParagraphs = contentDiv.getElementsByTagName("p") For Each para In contentParagraphs WScript.Echo "Content paragraph: " & para.innerText Next Set htmlDoc = Nothing
该脚本创建了一个包含 div 内部和外部段落的 HTML 文档。在 div 元素上调用 GetElementsByTagName
以仅选择其子段落。这演示了范围限定的元素选择。
处理表格
此示例展示了如何使用 GetElementsByTagName
处理 HTML 表格。它演示了如何选择表格行和单元格以提取表格数据。该脚本处理一个简单的 HTML 表格结构。
Set htmlDoc = CreateObject("htmlfile") htmlDoc.write "<html><body><table><tr><td>Cell 1</td><td>Cell 2</td></tr><tr><td>Cell 3</td><td>Cell 4</td></tr></table></body></html>" Set rows = htmlDoc.getElementsByTagName("tr") rowNum = 1 For Each row In rows Set cells = row.getElementsByTagName("td") cellText = "" For Each cell In cells cellText = cellText & cell.innerText & " | " Next WScript.Echo "Row " & rowNum & ": " & cellText rowNum = rowNum + 1 Next Set htmlDoc = Nothing
该脚本创建了一个包含简单表格的 HTML 文档。GetElementsByTagName
首先选择所有表格行,然后选择每行中的单元格。嵌套循环处理表格结构以显示单元格内容。这展示了分层元素处理。
选择多个标签类型
此示例演示了如何在一次操作中选择多种元素类型。它展示了如何将通配符字符 (*) 与 GetElementsByTagName
结合使用。该脚本处理一个包含各种元素的 HTML 文档。
Set htmlDoc = CreateObject("htmlfile") htmlDoc.write "<html><body><h1>Title</h1><p>Paragraph</p><div>Division</div></body></html>" Set allElements = htmlDoc.getElementsByTagName("*") For Each elem In allElements WScript.Echo "Element: " & elem.tagName & ", Content: " & elem.innerText Next Set htmlDoc = Nothing
该脚本创建了一个包含各种元素的 HTML 文档。GetElementsByTagName("*")
选择文档中的所有元素。循环显示每个元素的标签名和内容。这演示了全面的文档遍历。
来源
在本文中,我们探讨了 VBScript 中的 GetElementsByTagName
方法,涵盖了其用法和实际应用。从基本的元素选择到复杂的文档遍历,这些示例展示了强大的 HTML 处理能力。有了这些知识,您可以改进您的网页抓取和文档操作脚本。