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



请考虑这种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源代码)?

标准明确规定:

为了兼容性,字符串"——"(双连字符)不能出现在评论。

没有合适的解析器应该接受你的"XML"格式良好。您可能会搜索错误的解析器——这表明某些版本的BeautifulSoup(3.08)可能会接受——在注释中——但真正的解决方案要么是清理. loadxml之前的数据,要么——更好的办法是——对作者采取严厉的措施。

最新更新