XML mal formé, comment contourner....?

Résolu
gentilKiki Messages postés 13 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 9 octobre 2008 - 25 févr. 2008 à 15:54
gentilKiki Messages postés 13 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 9 octobre 2008 - 25 févr. 2008 à 18:34
Bonjour a tous,
Je sollicite votre aide pour un probleme de parse xml.
J'ai un flux (que je ne peux pas modifier), qui est semble t'il, mal formé. Bien que je connaisse la raison, j'essaye, en vain, de contourner le problème.
Voici le flux:

<?xml version= "1.0" encoding="UTF-8"?>
<xml>
<rs:dataRows="2"ExitCode="1"ErrorMessage="" />
<z:row id="10314">
<z:row id="10315">
</rs:data>
</xml>

Hormis le format un peu étrange (balise xml), il existe un autre problème, celui des namespaces non déclarés.
J'ai bien essayé plusieurs methodes récoltées ca et la, mais ca coince tjs au meme endroit (a savoir, le premier namespace rencontré "rs"  ).

String pathFile = "C:\\myDoc.xml";
XmlTextReader docDal = new XmlTextReader(pathFile);
docDal.WhitespaceHandling = WhitespaceHandling.None;
XmlNamespaceManager nsmanager = new XmlNamespaceManager(docDal.NameTable);

nsmanager.AddNamespace("rs", " http://foo/");
nsmanager.AddNamespace("z", "http://foo2/");

while (docDal.Read())
{
  if (docDal.Name == "rs")
  {
     Console.WriteLine("name" + docDal.Name);
  }
}            
 
Peut etre existe t'il une solution pour déclarer, convenablement et a la volé, ces namespaces. Merci d'avance pour vos réponses...

gentilKiki

2 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
25 févr. 2008 à 17:59
Bonjour,
Je ne suis pas certain de ce que j'avance, mais je ne pense pas que les objets qui permettent le traitement d'XML soit fonctionnel avec des fichiers XML non valide (qui sont donc en fait pas des XML...).

La solution que je verrais alors est soit:
- lire le fichier comme un texte, corriger le contenu (en mémoire) puis charger le nouveau contenu (corrigé) dans un object XML tel un XmlDocument (cette fois, les objets pour XML seront utilisables)
 - Ne pas utiliser tout ce qui est relatif à l'XML et traiter le fichier comme un bête fichier texte (on passe alors à côté de tous les bénéfices offert par cette technologie).

<hr />
-My Blog-
3
gentilKiki Messages postés 13 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 9 octobre 2008
25 févr. 2008 à 18:34
Aie, ca s'annonce mal. Je m'attendai a un setting de fou, mais non, on revient a du parse a l'ancienne;)
Merci beaucoup Bisou, je crois que je vais essayer de pas trop perdre mon temps a avec ca et prendre ta methode:)

gentilKiki
0