Lire un flux xml [Résolu]

Messages postés
28
Date d'inscription
mardi 11 juillet 2006
Dernière intervention
27 octobre 2008
- - Dernière réponse : herve_labenere
Messages postés
28
Date d'inscription
mardi 11 juillet 2006
Dernière intervention
27 octobre 2008
- 19 févr. 2008 à 12:55
Bonjour,

Je conçois actuellement un petit logiciel pour suivre les cours de la Bourse.
J'utilise pour cela un webservice (http://www.webservicex.net/stockquote.asmx?WSDL) qui me donne le cours à partir du symbol de cotation.
EX : ALU pour AlcatelLucent.
Mais le cours est donné dans une chaîne (type string) qui encapsule des données xml.
Ici cela donnera la string suivante : 
   
  

[file:///C:/Users/myriam/AppData/Local/Temp/VSD1.tmp.XML# -]<StockQuotes>

[file:///C:/Users/myriam/AppData/Local/Temp/VSD1.tmp.XML# -]<Stock>

 <Symbol>ALU</Symbol>

 <Last>6.13</Last>

 <Date>2/15/2008</Date>

 <Time>4:01pm</Time>

 <Change>+0.06</Change>

 <Open>6.07</Open>

 <High>6.13</High>

 <Low>6.03</Low>

 <Volume>5172640</Volume>

 <MktCap>13.868B</MktCap>

 <PreviousClose>6.07</PreviousClose>

 <PercentageChange>+0.99%</PercentageChange>

 <AnnRange>5.54 - 14.57</AnnRange>

 <Earns>-1.083</Earns>

 <P-E>N/A</P-E>

 <Name>ALCATEL LUCENT</Name>

 </Stock>

 </StockQuotes>

Ma question est donc comment récupérer la valeur entre les balises <LAST></LAST>, pour avoir la dernière valeur de quotation ???
J'ai pensé au départ à instancier un objet de la classe xmlreader. Mais cette classe prend en paramètre un fichier xml ou un flux xml, pas une chaîne (string).

Herwin
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
3
Merci
Salut,


Tu peux utiliser le dernier constructeur de XmlTextReader. Le mieux serait un exemple: http://msdn2.microsoft.com/en-us/library/72fhddt9.aspx


Ou sinon, tu peux utiliser la classe XmlDocument comme ceci:

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.LoadXml("<toto></toto>");


La classe XmlDocument est plus simple pour effecteur des recherches de noeuds comme tu souhaite le faire:

XmlNode valueNode = xmlDoc.SelectSingleNode("//StockQuotes//Stock//Last");

string value = valueNode.InnerText;


Mais cette dernière demande beaucoup plus de ressources... A voir ^^

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

Merci billou_13 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de billou_13
Messages postés
28
Date d'inscription
mardi 11 juillet 2006
Dernière intervention
27 octobre 2008
3
Merci
Ca marche nickel,
Merci beaucoup.

Je donne le code entier pour ceux que ça intéresse.
- Récupération des données boursières sur un titre dont je passe le symbole dans une textbox (txtbSymbol)
- Appel du webservice dédié (http://www.webservicex.net/stockquote.asmx?WSDL) appelé dans mon application
- Click sur le bouton btnQuotation pour afficher la dernière valeur (last) :

private

void btnQuotation_Click(
object sender,
RoutedEventArgs e){

CoursBourse.

StockQuoteSoapClient sqsc =
new Solenn2.CoursBourse.
StockQuoteSoapClient();

XmlDocument doc =
new
XmlDocument();doc.LoadXml(sqsc.GetQuote(txtbSymbol.Text));

XmlNode valueNode = doc.SelectSingleNode(
"//StockQuotes//Stock//Last");llastQuotation.Content = valueNode.InnerText;

}

 

Herwin

Merci herve_labenere 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de herve_labenere

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.