Pregunta

¿Hay algún marco para consultar la sintaxis XML XML? Me canso seriamente de iterar a través de listas de nodos.


¿O es solo una ilusión (si no es idiota) y ciertamente no es posible ya que XML no es una base de datos relacional?

¿Fue útil?

Solución

XQuery y XPath ... XQuery es más lo que está buscando si una estructura SQL es deseable.

Otros consejos

Puede probar LINQ to XML, pero no es independiente del lenguaje.

.Net Framework proporciona LINQ para hacer esto o puede usar el espacio de nombres .Net System.Data para cargar datos de archivos XML.

Incluso puede crear consultas que tengan uniones entre las tablas, etc.

Por ejemplo, System.Data.DataTable proporciona un método ReadXml () .

XQuery es un lenguaje funcional que está más cerca de SQL. XPath es una notación para ubicar un nodo dentro del documento que se usa como parte de XSLT y XQuery .

Las

bases de datos XML como MarkLogic sirven como motores XQuery para datos XML, de la misma manera que las bases de datos relacionales sirven como SQL motores para datos relacionales.

Eso depende del problema que esté resolviendo. Si el archivo XML es bastante grande, a veces es necesario usar algo como los analizadores SAX para atravesar el archivo nodo por nodo, o obtendrá OutOfMemoryException o se quedará sin memoria virtual en su computadora.

Pero, si el tamaño esperado del archivo XML es relativamente pequeño, simplemente puede usar algo como Linq, también vea mi respuesta - aquí intenté explicar, cómo hacer que atravesar los nodos sea mucho más fácil con construcciones como rendimiento volver .

SQL Server 2005 admite XML DML en su código xml tipo de datos.

XQuery es sin duda el camino a seguir. Esto es lo que usan las bases de datos XML como eXist y MarkLogic .

En el mundo Java, existen varias soluciones para ejecutar XQuery en archivos planos, especialmente Saxon

Para .NET, no hay tanto disponible. Microsoft tenía una biblioteca XQuery, aunque esta se extrajo de .NET 2 y nunca ha vuelto a aparecer. XQSharp es una alternativa nativa de .NET, aunque actualmente solo se ha lanzado una versión de línea de comandos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top