Что "лучший" путь состоит в том, чтобы искать в xml?
Xpath или Linq2xml.
Я спрашиваю это, потому что мы должны сделать большой поиск в xml.
Я всегда использую XPath (так как я использовал это от.NET 1.1). Но с введением Linq можно легко использовать Linq2Sql.
С уважением, M.
Я использую оба широко также XSL
У них очень разные использует IMO
XPath отлично подходит для манипулирования XML-документами Wheras Linq2xml для отображения их в коллекции объектов.
Другими словами, я регулярно имею приложения, которые включают в себя оба.
Например, разброс CSV в заданную структуру XML представляет собой почти вишну, выбранную для XSLT, и XPath Wheras Linq2xml даст вам проблемы, если у вас есть документ XML, который имеет необязательные элементы. Поэтому я склонен использовать XPath, чтобы действительно заблокировать формат XML, чтобы он был явным и сохранить отображение My Linq2xML очень просто.
Результат гораздо меньше ошибок и намного быстрее.
Не знаю, почему парень говорит о LINQ2XSD ... это прекрасный проект, который имеет очень небольшую документацию. держись подальше от этого.
XDocument - это объект, который на самом деле приятным для работы с ... XMLDocument - это просто, просто IMO. Очевидно, что это зависит от задачи под рукой, но отсутствие XPath 2.0 делает меня, как правило, используют его в качестве очистки данных, а затем Linq2xml выполнять реальную работу.
Насколько идет поиск, вы можете сделать все, что Linq2xml делает в XPath, то дело в том, что синтаксически я далеко предпочитаю использовать Linq2SQL и играть с сильно напечатанными коллекциями, чем беспорядок с XPath. Гораздо легче вернуться на более позднюю дату и адаптировать. Также вам не нужно беспокоиться о синтаксических различиях между реализациями XPath и особенно с реализациями Regex
Вам нужно будет сначала определить критерии, чтобы судить, что лучше. И вам нужно решить, хотите ли вы сравнить XPath 1.0 или 2.0 с LINQ до XML. Microsoft не поддерживает XPath 2.0, но существуют третьинные решения, такие как Saxon 9 или вроде XQSHARP .
тоже. По-разному.
В зависимости от знаний о вашей (и вашей команде) (то есть XPath не будет эффективным, никто не знает XPath, но все знают Linq к XML). Также некоторые операции могут быть проще в одном или иной.