1

我正在尝试在 VB6 中编写 XML 解析器。
XML 所基于的标准带有一个 DTD,用于在开始解析之前验证 XML。我还编写了一个示例 XML 文件,以便我可以进行测试。

我能够通过 vb6 代码加载 XML

Dim objXMLDoc As MSXML.DOMDocument
Set objXMLDoc = New MSXML.DOMDocument  
If Not objXMLDoc.Load("sample.xml") Then  
----Goto ErrorHandler  
End If

工作 XML

<?xml version = "1.0"?>  
<Root>  
...  
</Root>

尝试使用我的 DTD 进行验证

<?xml version = "1.0"?>  
<!DOCTYPE sample SYSTEM "sample.dtd">  
<Root>  
...  
</Root>

我所做的研究使我相信,如果 XML 通过 doc 类型指向 DTD,则 Load 将验证 XML。
我做了很多研究,无法弄清楚我哪里出错了。它可能就像提供的 DTD 在语法上不正确一样简单,我现在正在查看它。我找到的资源主要在 MSDN 和这里http://www.jalix.org/ressources/internet/dom/~vrac/articles/XML%20DOM.html
xml 和 dtd 都位于同一个目录中,我让它解析没有 doctype 标记的 XML。

我得到的错误是:
错误#:-2146697211:系统找不到指定的资源。错误处理资源“sample.dtd”

任何额外的资源或建议将不胜感激。

4

2 回答 2

1

我无法重现您的错误。它适用于我在同一个文件夹中的两个文件。

这也不是 DTD 格式不正确的问题。这会引发另一个错误。如果它找不到 DTD,我会收到与您相同的错误,而-1072896757如果它确实找到了我的(完全伪造的)DTD,我会收到错误(“在 DTD 中找到无效字符。”)。

您是否尝试过使用不同的Microsoft XML版本,或者您是否与旧版本 2.0绑定?如果可能,请尝试v6.0 。

于 2009-01-21T23:38:41.813 回答
0

一个明显的建议,但是您是否尝试过完全限定 dtd 文件名(即 c:\blahblah...\sample.dtd?

于 2009-01-23T10:13:36.477 回答