Comment analyser un document XML après une première validation par rapport à une DTD dans VB6

StackOverflow https://stackoverflow.com/questions/467180

  •  19-08-2019
  •  | 
  •  

Question

J'essaie d'écrire un analyseur XML en VB6.
Les normes sur lesquelles le XML est basé sont fournies avec une DTD pour vérifier le XML avant de commencer l'analyse. J'ai également écrit un exemple de fichier XML pour pouvoir tester quelque chose.

Je peux charger le code XML via le code vb6

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

XML de travail

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

Essayer de valider avec ma DTD

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

Les recherches que j'ai effectuées m'ont amené à croire que la charge validerait le code XML si celui-ci pointait vers la DTD via le type doc.

J'ai fait beaucoup de recherches et je ne peux pas comprendre où je me trompe. Cela pourrait être aussi simple que la DTD fournie n'est pas syntaxiquement correcte, ce que je vérifie maintenant. Les ressources que j'ai trouvées sont principalement sur MSDN et ici http://www.jalix.org/ressources/internet/dom/~vrac/articles/XML%20DOM.html .
Les fichiers xml et dtd se trouvent dans le même répertoire. Je l'ai analysé en XML sans la balise doctype.

L'erreur que je reçois est la suivante:
Erreur n °: -2146697211: le système ne peut pas localiser la ressource spécifiée. ressource de traitement d'erreur 'sample.dtd'

Toute ressource supplémentaire ou suggestion serait grandement appréciée.

Était-ce utile?

La solution

Je ne peux pas reproduire votre erreur. Cela fonctionne très bien avec les deux fichiers dans le même dossier pour moi.

Le problème n'est pas que la DTD ne soit pas bien formée non plus; cela jette une autre erreur. J'obtiens la même erreur que vous si elle ne trouve pas la DTD, alors que j'obtiens l'erreur -1072896757 ("Caractère invalide trouvé dans la DTD.") S'il trouve mon (totalement faux) DTD.

Avez-vous essayé d'utiliser une autre version de Microsoft XML ou êtes-vous lié à l'ancienne version 2.0 ? Essayez v6.0 si possible.

Autres conseils

Une suggestion évidente, mais avez-vous essayé de qualifier complètement le nom de fichier dtd (c.-à-d. c: \ blahblah ... \ sample.dtd?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top