2010-01-28 3 views
5

Что такое «лучший» способ поиска в xml?
Xpath или Linq2xml.Что лучше XPath или Linq2Xml

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

Привет, М.

+1

Эта статья хорошая .. http://www.codewrecks.com/blog/index.php/2008/09/05/mix- linq2xml-and-xpath-take-the-best-from-both/ – 2010-01-28 09:09:40

ответ

7

я использую оба широко также Xsl

они имеют очень различное использование имо

XPath отлично подходит для манипулирования XML-документов linq2xml Тогда как велик для отображения их в коллекции объектов.

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

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

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

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

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

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

+0

Это отличное объяснение, thx mate – user29964

+0

np рад помочь –

0

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

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

0

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

Смежные вопросы