小编Quo*_*ote的帖子

如果存在 <!DOCTYPE html> 标记,则在 VBScript 中的 DOM XML 解析器中加载 HTML 文档会失败

我目前正在尝试使用 VBScript 对 HTML 文件执行批量修改。为此,我使用 Microsoft.XMLDOM 对象。无法将我的 HTML 文件作为 XML 文档加载。经过一些实验,第一行的以下标签似乎是罪魁祸首:

<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)

如果删除此行,我的脚本将按预期工作。如果包含此行,则不会加载。不会出现任何特定的错误消息,但尝试从 XMLDOM 对象中获取任何内容都不会返回任何内容,这与对象尝试加载的文件不存在时的行为相同。

有谁知道为什么会发生这种情况以及如何解决这个问题?我无法从我的文件中删除此标签,因为它们是 HTML 文档,并且通常由另一个应用程序重新生成。

这是我的代码示例:

strFilePath = WScript.Arguments(0)
strTitlePrefix = WScript.Argument(1)

Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.Async = False

objXMLDoc.load(strFilePath)

Set objDoc = objXMLDoc.documentElement
Set objNodes = objDoc.selectNodes("//title")
For Each thisNode in objNodes
  OriginalTitle = thisNode.text
  NewTitle = TitlePrefix & OriginalTitle
  thisNode.text = NewTitle     
Next
Run Code Online (Sandbox Code Playgroud)

它在这一行失败:

Set objNodes = objDoc.selectNodes("//title")
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Microsoft VBScript runtime error: Object required: 'objDoc'
Run Code Online (Sandbox Code Playgroud)

如果我删除它尝试读取的文档顶部的标记,该代码就会执行我期望的操作,因此我知道问题在于该标记导致它认为该文件不是 XML 文档。

xml vbscript xmldom

2
推荐指数
1
解决办法
2555
查看次数

标签 统计

vbscript ×1

xml ×1

xmldom ×1