Самый простой способ сделать это - отфильтровать данные после считывания в DataTable
. Но такой подход может быть не идеальным, если, например, файл XML очень большой, а набор отфильтрованных строк невелик: вы несете затраты времени и пространства на выделение, обработку и уничтожение очень большого числа объектов, чтобы получить небольшое количество из них.
Есть способ обойти это, но это не тривиально: подкласс XmlReader
. Выполните фильтрацию в подклассе, так как он читает XML, возвращая только узлы, которые соответствуют вашим критериям фильтрации, вызывающей стороне метода Read()
.
В этой статье MSDN описывается, как написать XmlReader
, который позволяет (скажем) XmlDocument
читать файлы .INI, как если бы они были документами XML. На самом деле проще написать фильтрацию XmlReader
, так как вам не нужно разбираться со всеми проблемами синтаксического анализа, описанными в этой статье - у вас просто есть XmlReader
, чтобы создать свой собственный подкласс XmlReader
, а затем вернуть (или не) узлы, которые он читает.