Запросить XML-файл, содержащий вложенные элементы, используя LINQPad? - PullRequest
8 голосов
/ 13 августа 2011

Я использую LINQPad для запроса и визуализации файлов XML с помощью C #. Например:

var xml = XElement.Load(@"C:\file.xml");
xml.Elements().Where(e => e.Element("trHeader").Element("trTickNum").Value == "1").Dump();

Однако я бы хотел выполнить запрос с использованием SQL, а не C #.

Есть ли способ загрузить XML, который содержит вложенные элементы, и запросить его таблицы, используя опцию SQL LINQPad?

Ответы [ 2 ]

6 голосов
/ 13 августа 2011

Это невозможно. Параметр SQL требует, чтобы база данных была указана, и используется для запроса этой базы данных. Невозможно использовать SQL против файла XML, который имеет свою собственную иерархию. Что вы можете сделать, так это найти способ загрузить XML в SQL или использовать тип данных XML в SQL, а затем полностью обработать данные с помощью операторов SQL.

3 голосов
/ 30 октября 2015

Это работает для меня.

var xml = XElement.Load(@"C:\AllTypesList.xml");
var list = xml.Elements().ToList();
var types = list.Where(x => x.Name == "XmlParamType").ToList();
types.Count().Dump();
types.GroupBy(t => t.Element("TypeName").Value).Count().Dump();
...