¿Cómo se analiza un documento XML después de la primera validación contra un DTD en VB6?

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

  •  19-08-2019
  •  | 
  •  

Pregunta

Estoy intentando escribir un analizador XML en VB6.
Los estándares en los que se basa el XML vienen con un DTD para verificar el XML antes de comenzar a analizar. También he escrito un archivo XML de muestra para tener algo con lo que probar.

Puedo cargar el XML a través del código vb6

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

XML de trabajo

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

Intentando validar con mi DTD

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

La investigación que hice me llevó a creer que la Carga validaría el XML si el XML apuntaba a la DTD a través del tipo de documento. He investigado mucho y no puedo entender dónde me estoy equivocando. Podría ser tan simple como el DTD proporcionado no es sintácticamente correcto, lo que estoy revisando ahora. Los recursos que he encontrado están principalmente en MSDN y aquí http://www.jalix.org/ressources/internet/dom/~vrac/articles/XML%20DOM.html .
Tanto el xml como el dtd se encuentran en el mismo directorio, y tengo que analizar el XML sin la etiqueta doctype.

El error que obtengo es:
Error #: -2146697211: el sistema no puede localizar el recurso especificado. error al procesar el recurso 'sample.dtd'

Cualquier recurso adicional o sugerencia sería muy apreciado.

¿Fue útil?

Solución

No puedo reproducir tu error. Funciona bien con ambos archivos en la misma carpeta para mí.

Tampoco es un problema que el DTD no esté bien formado; eso arroja otro error. Recibo el mismo error que usted si no puede encontrar la DTD, mientras que recibo el error -1072896757 (" Carácter no válido encontrado en DTD. & Quot;) si encuentra mi (totalmente falso) DTD.

¿Ha intentado utilizar una versión Microsoft XML diferente o está vinculado a la antigua versión 2.0 ? Pruebe v6.0 si es posible.

Otros consejos

una sugerencia obvia, pero ¿ha intentado calificar completamente el nombre de archivo dtd (es decir, c: \ blahblah ... \ sample.dtd?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top