2010-01-28 21 views
5

¿Cuál es la "mejor" forma de buscar en xml?
Xpath o Linq2xml.¿Qué es mejor XPath o Linq2Xml

Estoy preguntando esto porque tenemos que hacer muchas búsquedas en xml.
Siempre estoy usando XPath (ya que he estado usando esto desde .NET 1.1). Pero con la introducción de Linq puedes usar Linq2Sql de manera fácil.

Regards, M.

+1

Este artículo es bueno. Http://www.codewrecks.com/blog/index.php/2008/09/05/mix- linq2xml-y-xpath-take-the-best-from-both/ –

Respuesta

7

yo uso tanto extensivamente también XSL

que tienen usos muy diferentes imo

XPath es ideal para la manipulación de documentos XML wheras linq2xml es grande para el mapeo en colecciones de objetos.

En otras palabras, regularmente tengo aplicaciones que involucran a ambas.

por ejemplo, analizar csv en una estructura xml determinada casi se selecciona para xslt y xpath wheras linq2XMl le dará problemas si tiene un documento xml que tiene elementos opcionales. así que tiendo a usar xpath para realmente bloquear el formato xml para que sea explícito y para mantener mi mapeo linq2xml muy simple.

El resultado es mucho menos errores y un desarrollo mucho más rápido.

ni idea de por qué el hombre está hablando de linq2xsd ... es un proyecto descontinuado que tiene muy poca documentación. mantente alejado de eso.

Xdocument es un objeto que es realmente agradable de trabajar con ... xmldocument es uno que es solo un poco imo. Obviamente, depende de la tarea en cuestión, pero la falta de xpath 2.0 me hace tender a usarlo como un limpiador de datos y luego dejar que linq2XMl haga el trabajo real.

en lo que respecta a la búsqueda, puede hacer todo lo que hace linq2xml en xpath, lo que sucede es que, sintácticamente, prefiero usar linq2sql y jugar con colecciones fuertemente tipadas que con xpath. Es mucho más fácil volver a una fecha posterior y adaptarse. Además, no tiene que preocuparse por las diferencias de sintaxis entre las implementaciones de xpath y especialmente con las implementaciones de expresiones regulares

+0

esta es una gran explicación, thx mate – user29964

+0

np encantada de ayudar –

0

tampoco. Depende.

Dependiendo de su conocimiento (y el de su equipo) (es decir, XPath no será efectivo, nadie sabe de XPath, pero todos conocen LINQ to XML). También algunas operaciones pueden ser más fáciles en uno u otro.

0

Deberá definir primero los criterios para juzgar qué es lo mejor. Y debe decidir si desea comparar XPath 1.0 o 2.0 con LINQ a XML. Microsoft no es compatible con XPath 2.0, pero existen soluciones de terceros, como Saxon 9 o como XQSharp.