VBScript nodeName 属性
最后修改于 2025 年 4 月 9 日
VBScript 中的 nodeName
属性返回 DOM (Document Object Model) 中节点的名称。它是一个只读属性,对所有节点类型都可用。返回值取决于节点类型,为元素、属性和其他节点类型提供标识。
对于元素节点,nodeName
以大写形式返回标签名称。对于属性节点,它返回属性名称。文本节点返回“#text”。此属性对于在 VBScript 中导航和操作 XML/HTML 文档至关重要。
nodeName 属性概述
nodeName
属性是 DOM Core 规范的一部分。它提供了一种标准化方法来标识文档树中的节点类型。在通过 DOM 处理 XML 和 HTML 文档时,此属性均可生效。
不同的节点类型从 nodeName
返回不同的值。元素节点返回它们的标签名称,属性节点返回它们的属性名称。文档节点返回“#document”。理解这些值有助于 DOM 导航和操作。
获取元素节点名称
此示例演示了如何检索元素节点的名称。我们将加载一个简单的 XML 文档并检查其根元素的 nodeName。该示例展示了 VBScript 中的基本 XML 解析。
Set xmlDoc = CreateObject("Microsoft.XMLDOM") xmlDoc.async = False xmlDoc.loadXML "<book><title>VBScript Guide;<title></book>" Set root = xmlDoc.documentElement WScript.Echo "Root node name: " & root.nodeName ' Output: BOOK Set xmlDoc = Nothing
该脚本创建一个 XML DOM 对象并加载一个简单的 XML 字符串。它访问 documentElement(根节点)并显示其 nodeName。请注意,在 VBScript 的 XML DOM 中,元素名称默认以大写形式返回。
检查不同的节点类型
此示例显示了 nodeName
在不同节点类型下的行为。我们将检查一个元素、其属性和一个文本节点。每种节点类型从 nodeName 属性返回的值都不同。
Set xmlDoc = CreateObject("Microsoft.XMLDOM") xmlDoc.async = False xmlDoc.loadXML "<product id='101'><name>Widget</name></product>" Set product = xmlDoc.documentElement Set attr = product.getAttributeNode("id") Set text = product.firstChild.firstChild WScript.Echo "Element: " & product.nodeName ' Output: PRODUCT WScript.Echo "Attribute: " & attr.nodeName ' Output: id WScript.Echo "Text node: " & text.nodeName ' Output: #text Set xmlDoc = Nothing
该脚本加载包含元素、属性和文本内容的 XML。它为每种节点类型显示 nodeName。请注意,属性保留其原始大小写,而元素名称是大写的。文本节点返回特殊值“#text”。
导航 HTML 文档结构
此示例演示了如何使用 nodeName
导航 HTML 文档。我们将检查简单 HTML 结构不同级别的节点名称。该示例展示了如何遍历 DOM 树。
Set htmlDoc = CreateObject("htmlfile") htmlDoc.write "<html><body><h1>Welcome</h1><p>Content</p></body></html>" Set html = htmlDoc.documentElement Set body = html.firstChild Set heading = body.firstChild WScript.Echo "HTML: " & html.nodeName ' Output: HTML WScript.Echo "BODY: " & body.nodeName ' Output: BODY WScript.Echo "H1: " & heading.nodeName ' Output: H1 Set htmlDoc = Nothing
该脚本创建一个 HTML 文档对象并写入简单的 HTML 内容。然后,它从根 HTML 元素导航到 H1 元素。显示每个节点的名称,展示文档的层次结构。
使用节点名称处理 XML
此示例展示了 nodeName
在处理 XML 数据方面的实际应用。我们将遍历子节点并根据它们的名称执行操作。该脚本演示了使用节点名称进行条件处理。
Set xmlDoc = CreateObject("Microsoft.XMLDOM") xmlDoc.async = False xmlDoc.loadXML "<data><item>A</item><note>Important</note><item>B</item></data>" Set root = xmlDoc.documentElement For Each node In root.childNodes If node.nodeName = "ITEM" Then WScript.Echo "Found item: " & node.text ElseIf node.nodeName = "NOTE" Then WScript.Echo "Found note: " & node.text End If Next Set xmlDoc = Nothing
该脚本加载包含不同元素类型的 XML。它循环遍历子节点并检查它们的 nodeName 值。根据元素名称,它执行不同的操作。这种模式在 XML 处理脚本中很常见。
比较 nodeName 和 tagName
此示例将 nodeName
属性与 tagName
属性进行比较。虽然对于元素来说它们很相似,但对于其他节点类型,它们的行为不同。该脚本演示了这些差异。
Set xmlDoc = CreateObject("Microsoft.XMLDOM") xmlDoc.async = False xmlDoc.loadXML "<root><element attr='value'>Text</element></root>" Set elem = xmlDoc.documentElement.firstChild Set attr = elem.getAttributeNode("attr") Set text = elem.firstChild WScript.Echo "Element nodeName: " & elem.nodeName ' Output: ELEMENT WScript.Echo "Element tagName: " & elem.tagName ' Output: ELEMENT WScript.Echo "Attribute nodeName: " & attr.nodeName ' Output: attr WScript.Echo "Text nodeName: " & text.nodeName ' Output: #text Set xmlDoc = Nothing
该脚本表明,对于元素,nodeName 和 tagName 返回相同的值。但是,对于非元素节点,tagName 是未定义的。nodeName 在所有节点类型上都能一致地工作,使其在 DOM 导航方面更具通用性。
来源
在本文中,我们探讨了 VBScript 中的 nodeName
属性,涵盖了它在不同节点类型下的行为以及实际应用。从简单的 XML 解析到复杂的文档导航,这些示例展示了 nodeName 如何帮助标识和处理节点。有了这些知识,您就可以编写更强大的 DOM 处理脚本。