IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

XML préfixe non déclaré


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2010
    Messages : 36
    Par défaut XML préfixe non déclaré
    Bonjour,

    J'essaie de charger un fichier xml (un flux RSS) en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load("http://xxxx.fr/feedstest/demo/rss/news.xml");
    Mais j'ai l'erreur
    'sy' est un préfixe non déclaré. Ligne 11, position 10.
    Mon fichier xml contient un texte du type suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0">
     
        <channel>
            <title>Testnews</title>
            <link>http://www.myurl.com</link>
            <description>Simple test</description>
            <pubDate>Wed, 08 Oct 2010 10:20:22 +0000</pubDate>
            <generator>Testnews</generator>
            <language>en</language>
            <sy:updatePeriod>hourly</sy:updatePeriod>
            <sy:updateFrequency>1</sy:updateFrequency>
            <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex"/>
     
            <item>
    			...
    J'ai bien compris que c'est un problème avec les espaces de nommage mais je ne sais pas comment le régler.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2010
    Messages : 36
    Par défaut Une solution
    Salut,

    j'ai réussi à contourner le problème en utilisant un objet XmlTextReader sur lequel j'ai désactivé la prise en charge des espaces de noms;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    XmlTextReader xReader = new XmlTextReader(urlFeeds);
                xReader.Namespaces = false;
     
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(xReader);

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Sinon tu peux utiliser la classe SyndicationFeed, c'est fait pour ça

    Un exemple ici

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2010
    Messages : 36
    Par défaut
    Merci tomlev, je n'été pas au courant pour cette classe, mais j'ai quand même un problème lors du chargement (SyndicationFeed.Load(reader)):
    Erreur à la ligne 1 position 387. Une erreur s'est produite lors de l'analyse d'une valeur DateTime dans le XML.
    Et pourtant je lis bien le même flux que dans l'exemple : http://news.google.fr/nwshp?hl=fr&tab=wn&output=rss

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    using (XmlReader reader = XmlReader.Create("http://news.google.fr/nwshp?hl=fr&tab=wn&output=rss"))
                {
                    SyndicationFeed feed = SyndicationFeed.Load(reader);
     
                    foreach (SyndicationItem item in feed.Items)
                    {
                        Console.WriteLine(item.Title.Text);
                    }
                }

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    mmm... bizarre. Ca fonctionnait bien avant, ils ont du changer le format des dates dans leur flux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] ObservableCollection, ''c" est un préfixe non déclaré
    Par yoyo3d dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 22/12/2011, 08h35
  2. Réponses: 3
    Dernier message: 19/02/2008, 14h34
  3. Réponses: 29
    Dernier message: 17/09/2007, 10h29
  4. EmptyParam non déclaré
    Par Tempotpo dans le forum Langage
    Réponses: 2
    Dernier message: 01/08/2005, 14h46
  5. Problème avec des composants non déclarés
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2005, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo