1

请考虑这种 XHTML 文档:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head></head>
<body>
<!--- Some comment with 3 dashes that causes parsing error --->
<!-- Rest of XHTML -->
</body>
</html>

以及我正在尝试解析的部分 VBScript 代码:

With CreateObject("MSXML2.DOMDocument.6.0")
    .async = False
    .setProperty "ProhibitDTD", False
    .validateOnParse = False
    .setProperty "SelectionLanguage", "XPath"
    .setProperty "SelectionNamespaces", "xmlns:xhtml='http://www.w3.org/1999/xhtml'"
    .load(url)
End With

我收到错误报告:

注释中使用了不正确的语法

显然是因为评论使用了 3 个破折号。

有谁知道如何解决这个问题(不使用 HTTP 请求并更正 XHTML 源代码)?

4

1 回答 1

2

正如标准明确指出的那样:

为了兼容性,字符串“--”(双连字符)不得出现在注释中。

没有像样的解析器应该接受您的“XML”格式正确。您可能会搜索错误的解析器 -表明 BeautifulSoup (3.08) 的某些版本可能会接受 - 在评论中 - 但真正的解决方案是在 .loadXml 之前清理数据,或者 - 更好 - 对作者大加赞赏.

于 2013-05-03T21:10:19.887 回答