Возможно ли использовать xpath в потоковом XML-файле с помощью streamreader (файл, полученный из Интернета)?Использование xpath в потоке
Я знаю точное местоположение данных, которые мне нужны, но не знаю, как лучше всего это получить?
Благодаря
Возможно ли использовать xpath в потоковом XML-файле с помощью streamreader (файл, полученный из Интернета)?Использование xpath в потоке
Я знаю точное местоположение данных, которые мне нужны, но не знаю, как лучше всего это получить?
Благодаря
Используйте метод XDocument.Load(Stream, LoadOptions)
для разбора XML из потока. Затем вы можете использовать XDocument.XPathEvaluate
, чтобы получить значение.
Хотя теоретически возможно построить считыватель потока, который выполнил запрос XPath для потока, я не знаю никакой такой реализации; XPath-процессоры в платформе .NET (в XDocument
, XmlDocument
и XPathDocument
) все считывают документ в память перед выполнением запроса. Все эти объекты могут читать потоки.
Если скорость является проблемой, XPathDocument
и XPathNavigator
, вероятно, будет самым быстрым, так как эти объекты позволяют непосредственно перебрать узлы, как запрос выполняется, а не выполнение запроса и возвращает список узлов для вас итерацию над. (Фактически XDocument.XPathEvaluate
тоже может это сделать, в документации не указано.)