C# для профессионалов. Том II | страница 19
>
>
>
>
>
>
>
>
>
>
Мы не рассмотрели всех особенностей класса >XmlDocument
или других классов, способствующих созданию модели DOM в .NET. Однако мы видели мощь и гибкость, которые предлагает реализация DOM в .NET. Класс >XmlDocument
обычно используется, когда требуется случайный доступ к документу. Используйте классы на основе >XmlReader
, когда желательна модель потокового типа. Помните, что гибкость >XmlDocument
на основе >XmlNode
обеспечивается более высокими требованиями к памяти, поэтому подумайте тщательно о том, какой метод предпочтительнее в конкретной ситуации.
XPath и XslTransform
Мы рассмотрим >XPath
и >XslTransform
вместе, хотя они являются отдельными пространствами имен на платформе. >XPath
содержится в >System.Xml.XPath
, a >XslTransform
находится в >System.Xml.Xsl
. Причина совместного рассмотрения состоит в том, что >XPath
, в частности класс >XPathNavigator
, предоставляет ориентированный на производительность способ выполнения >XSLTransform
в .NET. Для начала рассмотрим >XPath
, а затем его использование в классах >System.Xsl
.
Пространство имен >XPath
создается для скорости. Оно позволяет только читать документы XML без возможностей редактирования. >XPath
создается для поверхностного выполнения быстрых итераций и выбора в документе XML. Функциональность >XPath
представляется классом >XPathNavigator
. Этот класс может использоваться вместо >XmlDocument
, >XmlDataDocument
и >XPathDocument
. Если требуются средства редактирования, то следует выбрать >XmlDocument
; при работе с ADO.NET будет использоваться класс >XmlDataDocument
(мы увидим его позже в этой главе). Если имеет значение скорость, то применяйте в качестве хранилища >XPathDocument
. Можно расширить >XPathNavigator
для таких вещей, как файловая система или реестр в качестве хранилища. В следующей таблице перечислены классы >XPath
с кратким описанием назначения каждого класса:
Имя класса | Описание |
---|---|
>XPathDocument | Представление всего документа XML. Только для чтения. |
>XPathNavigator | Предоставляет навигационные возможности для >XPathDocument . |
>XPathNodeIterator | Обеспечивает итерацию по множеству узлов. Является эквивалентом для множества узлов в >Xpath . |
>XPathExpression | Компилированное выражение >Xpath . Используется |