请考虑这种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之前的数据,要么——更好的办法是——对作者采取严厉的措施。为了兼容性,字符串"——"(双连字符)不能出现在评论。