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

[Résolu]
Signaler
Messages postés
13
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
9 octobre 2008
-
Messages postés
13
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
9 octobre 2008
-
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

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
57
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-
Messages postés
13
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
9 octobre 2008

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