Вопрос

Есть ли какая-либо структура для запроса синтаксиса XML SQL? Я серьезно устал перебирать списки узлов.


Или это просто принятие желаемого за действительное (если не идиотизм) и уж точно невозможное, поскольку XML не является реляционной базой данных?

Это было полезно?

Решение

XQuery и XPath...XQuery — это больше то, что вам нужно, если желательна структура SQL.

Другие советы

Вы можете попробовать LINQ to XML, но он не зависит от языка.

.Net Framework предоставляет для этого LINQ, или вы можете использовать пространство имен .Net System.Data для загрузки данных из XML-файлов.

Вы даже можете создавать запросы с объединениями таблиц и т. д.

Например, System.Data.DataTable предоставляет ReadXml() метод.

XQuery — функциональный язык, наиболее близкий к SQL. XPath — это обозначение для поиска узла в документе, которое используется как часть XSLT и XQuery.

XML-базы данных, такие как МаркЛогик служат механизмами XQuery для данных XML, так же, как реляционные базы данных служат механизмами SQL для реляционных данных.

Это зависит от проблемы, которую вы решаете.Если XML-файл довольно большой, иногда необходимо использовать что-то вроде анализаторов SAX для обхода узла файла за узлом, иначе вы получите OutOfMemoryException или даже у вас закончится виртуальная память на вашем компьютере.

Но если ожидаемый размер файла XML относительно невелик, вы можете просто использовать что-то вроде Linq, см. также мой отвечать - здесь я постарался объяснить, как существенно упростить обход узлов с помощью конструкций типа доходность.

SQL Server 2005 поддерживает XML-DML на родном xml тип данных.

XQuery, безусловно, является шагом вперед.Это то, что используется базами данных XML, такими как существовать и МаркЛогик.

В мире Java существует несколько решений для запуска XQuery над плоскими файлами, в первую очередь саксонский

Для .NET доступно не так много возможностей.У Microsoft действительно была библиотека XQuery, хотя она была взята из .NET 2 и больше никогда не появлялась. XQSharp является собственной альтернативой .NET, хотя в настоящее время выпущена только версия для командной строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top