Что лучше XPath или Linq2Xml - PullRequest
       25

Что лучше XPath или Linq2Xml

5 голосов
/ 28 января 2010

Какой самый лучший способ поиска в xml?
Xpath или Linq2xml.

Я спрашиваю об этом, потому что нам нужно много искать в xml.
Я всегда использую XPath (так как я использовал это из .NET 1.1). Но с введением Linq вы можете легко использовать Linq2Sql.

С уважением, M.

Ответы [ 3 ]

7 голосов
/ 28 января 2010

Я широко использую оба XSL

у них очень разное использование ИМО

xpath отлично подходит для манипулирования документами xml, тогда как linq2xml отлично подходит для отображения их в коллекции объектов.

Другими словами, у меня регулярно есть приложения, которые включают оба.

Например, синтаксический анализ CSV в заданной XML-структуре почти полностью выбран для xslt и xpath, поэтому linq2XMl создаст проблемы, если у вас есть XML-документ с дополнительными элементами. поэтому я склонен использовать xpath, чтобы действительно заблокировать формат xml, чтобы он был явным, и чтобы мое отображение linq2xml было очень простым.

В результате получается намного меньше ошибок и значительно ускоряется разработка.

Понятия не имею, почему этот парень говорит о linq2xsd ... это проект, который был прекращен и в котором очень мало документации. держись подальше от этого.

Xdocument - это объект, с которым на самом деле приятно работать ... xmldocument - это просто потрясающий imo. Очевидно, что это зависит от поставленной задачи, но отсутствие xpath 2.0 заставляет меня использовать его в качестве средства очистки данных, а затем позволить linq2XMl выполнять настоящую работу.

Что касается поиска, вы можете делать все, что linq2xml делает в xpath, дело в том, что синтаксически я предпочитаю использовать linq2sql и играть со строго типизированными коллекциями, чем возиться с xpath. Гораздо проще вернуться к нему позже и адаптироваться. Также вам не нужно беспокоиться о синтаксических различиях между реализациями xpath и особенно с реализациями регулярных выражений

0 голосов
/ 28 января 2010

Сначала вам нужно будет определить критерии, чтобы судить, что лучше. И вам нужно решить, хотите ли вы сравнить XPath 1.0 или 2.0 с LINQ to XML. Microsoft не поддерживает XPath 2.0, но существуют сторонние решения, такие как Saxon 9 или XQSharp .

0 голосов
/ 28 января 2010

Либо. Это зависит.

В зависимости от ваших (и вашей команды) знаний (то есть XPath не будет эффективным, никто не знает XPath, но все знают LINQ to XML). Кроме того, некоторые операции могут быть проще в одной или другой.

...