2009-08-17 5 views
12

Je me demande quelle est la manière la plus élégante en C# d'interroger une chaîne qui est valide xml en utilisant XPath?La manière la plus élégante d'interroger la chaîne XML en utilisant XPath

Actuellement, je fais cela (LINQ):

var el = XElement.Parse(xmlString); 
var h2 = el.XPathSelectElement("//h2"); 
+2

ou je suppose que l'utilisation de LinqToXML est bonne aussi ... – Scott

+0

actuellement, je le fais (en utilisant linq): var el = XElement.Parse (xmlString); var h2 = el.XPathSelectElement ("// h2"); – Scott

Répondre

17

Exemple simple en utilisant LINQ to XML:

XDocument doc = XDocument.Parse(someStringContainingXml); 
var cats = from node in doc.Descendants("Animal") 
      where node.Attribute("Species").Value == "Cat" 
      select node.Attribute("Name").Value; 

beaucoup plus claire que XPath à mon humble avis ...

+3

peut être plus propre que XPath mais ne répond pas à la question. –

+0

@DavidAlpert, peut-être, mais il a été néanmoins accepté ... De toute façon, la question est complètement subjective: comment définissez-vous "élégant"? –

+1

La question d'origine dépend de la façon dont vous définissez "élégant ... en utilisant XPath" –

3

Juste pour l'enregistrement, je ne voulais pas aller avec Linq2XML mais XPath et trouvé de cette façon:

var xPathDoc = new XPathDocument(new StringReader("your XML string goes here")); 
Questions connexes