2017-08-29 2 views
-3

J'ai une chaîne qui ressemble à ceci et j'aimerais obtenir les valeurs dans les balises.C# extrait les valeurs de données xml de la chaîne avec XPath

string strXml = 
    @"<someXML> 
     <x>value1</x> 
     <y>value2</y> 
     <z>value3</z> 
    </someXML>"; 

string someData1 = "??"; 
string someData2 = "??"; 

Comment affecter certainesData1 (etc) avec value1, value2, etc ...?

+1

Il n'y a pas de valeurs dans les tags :) Yup, vous avez raison, c'est simple. Avez-vous déjà essayé quelque chose de simple? –

+0

Yess, désolé, j'ai oublié de les additionner ..: S My bad – Bince

+0

Qu'avez-vous déjà essayé? – JuanR

Répondre

2

Tout d'abord, le fichier XML que vous avez fourni n'est pas valide. Les nœuds ne peuvent pas avoir de nombres comme premier caractère.

Avec cette question corrigée, voici comment vous pouvez facilement obtenir les valeurs à l'aide d'un objet XDocument:

string strXml = 
    @"<someXML> 
     <x>value1</x> 
     <y>value2</y> 
     <z>value3</z> 
    </someXML>"; 

XDocument doc = XDocument.Parse(strXml); 
var x = doc.Element("someXML").Element("x").Value; 
var y = doc.Element("someXML").Element("y").Value; 
var z = doc.Element("someXML").Element("z").Value; 

Si vous avez plus d'un élément avec le même nom, vous pouvez utiliser ceci:

var xValues = doc.Element("someXML").Elements("x").Select(xElement => xElement.Value); 
+0

Merci beaucoup! – Bince