У меня есть довольно большой XML-файл, который мне нужно проанализировать в структуре классов .NET (для сопоставления с форматом записи фиксированной длины и передачи через MQ). Производительность важна, но не абсолютно критична.
Я почти всегда использую XPathNavigator
для чтения XML-файлов, потому что это намного проще, чем XmlReader
. С другой стороны, я знаю, что XmlReader
быстрее, чем XPathNavigator
, потому что теоретически он читает только один узел за раз, тогда как XPathNavigator
должен читать достаточно для выполнения XPath, возможно, всего документа.
Мой вопрос: насколько быстрее это на самом деле? Будет ли это заметно при чтении нескольких тысяч узлов? Что за переломный момент, когда мне приходится переключаться на XmlReader
? Или XPathNavigator
оптимизирован до такой степени, что это всегда хороший вариант?
Большая часть моего опыта работы с XML связана с относительно небольшими файлами, поэтому я ищу информацию от всех, кто работал с большими файлами.