XML mal formé, comment contourner....? [Résolu]

gentilKiki 14 Messages postés mercredi 30 janvier 2008Date d'inscription 9 octobre 2008 Dernière intervention - 25 févr. 2008 à 15:54 - Dernière réponse : gentilKiki 14 Messages postés mercredi 30 janvier 2008Date d'inscription 9 octobre 2008 Dernière intervention
- 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
Afficher la suite 

Votre réponse

2 réponses

cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 25 févr. 2008 à 17:59
+3
Utile
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-
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
gentilKiki 14 Messages postés mercredi 30 janvier 2008Date d'inscription 9 octobre 2008 Dernière intervention - 25 févr. 2008 à 18:34
0
Utile
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
Commenter la réponse de gentilKiki

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.