如何在首次验证VB6中的DTD之后解析XML文档

时间:2009-01-21 21:52:28

标签: xml vb6 dtd

我试图在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'

非常感谢任何其他资源或建议。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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