Nous sommes actuellement le 09 Juil 2026, 09:59

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 4 message(s) ] 
Auteur Message
 Sujet du message: Question Xml et C#
MessagePublié: 31 Jan 2006, 16:18 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
J'ai un petit problème pour extraire de l'information d'un fichier xml. Par exemple pour ce fichier xml:

Code :
...
<item>
   <description>Ceci est une description</description>
   <link url="http://www.test.com"/>
</item>
...


Je n'ai aucun problème à obtenir la description. Par exemple :

Code :
void RssItem(XmlNode itemNode)
{
   XmlNode selected = itemNode.SelectSingleNode("description");
   if (selected != null)
      description = selected.InnerText;
}



Mais je n'arrive pas à obtenir l'url du link. Quelqu'un à une idée ?


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 31 Jan 2006, 16:59 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 00:24
Message(s) : 5834
Ça devrais ressembler à ça
Code :
{
   XmlNode selected = itemNode.SelectSingleNode("link");
   if (selected != null)
      url = selected.Attributes.GetNamedItem("url").Value;
}


Si ça ne fonctionne pas, voici un exemple en vb.net. À part la déclaration des variables, ça va être la même chose en c#.
Code :
Dim objXmlDoc As New System.Xml.XmlDocument
Dim objXmlLink As XmlNode
Dim strUrl as String
       
objXmlDoc.LoadXml("<item><description>Ceci est une description</description><link url='http://www.test.com'/></item>")

objXmlLink = objXmlDoc.SelectSingleNode("item/link")
strUrl = objXmlLink.Attributes.GetNamedItem("url").Value



Il faut aller dans les attributes du noeud xml. GetNamedItem permet d'obtenir un attribut en lui fournissant son nom. Tu peux faire une validation avant d'utiliser .Value au cas ou l'attribut n'existe pas. Le best c'est de tout mettre ça dans un try catch et si une erreur survient dans le traitement du XML tu l'indique. Comme ça, dépendant des besoins, ce ne sera pas nécessaire de s'assurer que l'élément n'est pas null.

J'oubliais, vous devriez utiliser .Value au lieu de .InnerText pour obtenir la valeur d'un noeud.

_________________
This posting is provided "AS IS" with no warranties, and confers no rights!
©2006 - 2014 Jump


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 01 Fév 2006, 09:28 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
Merci ça fonctionne bien. Par contre si j'utilise .Value plutot que InnerText j'obtiens la valeur null.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 01 Fév 2006, 10:24 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 00:24
Message(s) : 5834
En effet ! C'est peut-être dans l'ancien msxml que ça fonctionnait comme ça.

_________________
This posting is provided "AS IS" with no warranties, and confers no rights!
©2006 - 2014 Jump


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 4 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site