2009-08-17 10 views
12

Me pregunto cuál es la manera más elegante en C# para consultar un STRING que es xml válido usando XPath?La manera más elegante de consultar cadenas XML usando XPath

Actualmente, estoy haciendo esto (usando LINQ):

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

o supongo que usar LinqToXML también es bueno ... – Scott

+0

actualmente, estoy haciendo esto (usando linq): var el = XElement.Parse (xmlString); var h2 = el.XPathSelectElement ("// h2"); – Scott

Respuesta

17

ejemplo simple que utiliza 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; 

mucho más claro que en mi humilde opinión ... XPath

+3

puede ser más limpio que XPath pero no responde la pregunta. –

+0

@DavidAlpert, tal vez, pero fue aceptado sin embargo ... De todos modos, la pregunta es completamente subjetiva: ¿cómo se define "elegante"? –

+1

La pregunta original depende de cómo se defina "elegante ... usando XPath" –

3

Sólo por el registro, no quise ir con Linq2XML pero XPath y lo encontré de esta manera:

var xPathDoc = new XPathDocument(new StringReader("your XML string goes here")); 
Cuestiones relacionadas