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

时间:2013-05-02 15:44:59

标签: vbscript xhtml msxml

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

1 个答案:

答案 0 :(得分:1)

正如standard明确指出:

  

为了兼容性,绝不能出现字符串“ - ”(双连字符)   在评论中。

没有合适的解析器可以接受你的'XML'格式良好。您可能会搜索错误的解析器 - this表示某些版本的BeautifulSoup(3.08)可能会接受 - 在评论中 - 但真正的解决方案是要么在.loadXml之前清理数据,要么 - 更好 - 要大坚持作者。