C#, XmlTextReader et DOCTYPE

C#, XmlTextReader et DOCTYPE - C#/.NET managed - Programmation

Marsh Posté le 14-09-2004 à 11:35:31    


Bonjour,
 
J'ai un probleme dans le parsing d'un fichier XML
Je bosses avec le Compact Framework.
 
En utilisant XmlTextReader, les fichier XML  
- SANS DOCTYPE sont parsés
- AVEC DOCTYPE ne le sont pas
 
j'aimerai savoir d'ou vient le probleme et comment faire pour ignorer
le doctype.
 
J'initialise mon objet comme cela

Code :
  1. XmlTextReader reader = new XmlTextReader(url);
  2. reader.WhitespaceHandling = WhitespaceHandling.None;
  3. reader.XmlResolver = null;


 
La recuperation des element lu est faite comme cela,
dans le cas d'une fichier avec un doctype, la methode
read() retourne toujours FALSE !!! Prkoi ?

Code :
  1. bool readData = false;
  2. try
  3. {
  4.   readData = reader.Read();
  5. }
  6. catch (System.Xml.XmlException e)
  7. {
  8.   ...
  9. }


 
Avec un fichier XML sans doctype ca passe nikel
 
Merci d'avance ...

Reply

Marsh Posté le 14-09-2004 à 11:35:31   

Reply

Marsh Posté le 14-09-2004 à 11:40:25    

Si tu as un DOCTYPE, je suppose que tu fournis a ton parser la DTD (si elle n'est pas incluse dans le document) afin qu'il puisse valider. Ou bien ton reader est il cense se debrouiller de lui meme (avec un gestionnaire d'entites qui va faire le boulot)?
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- No jab ? No job ! -- (╯°□°)╯︵ ┻━┻
Reply

Marsh Posté le 14-09-2004 à 12:15:22    

Je veux tout simplement ignorer le DOCTYPE

Reply

Marsh Posté le 14-09-2004 à 12:26:51    

Soit tu as une option dans ton parser pour celà, soit ce que tu fais ce n'est plus parser du XML...
Regardes si tu n'as pas une option pour parser en mode well-formed XML.
A+,


---------------
There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- No jab ? No job ! -- (╯°□°)╯︵ ┻━┻
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed