C# для профессионалов. Том II | страница 19



, создаваемый этим кодом:

>

>

>  Case of the Missing Cookie

>  

>   C. Monster

>  

9.95

>

Мы не рассмотрели всех особенностей класса >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

Пространство имен >XPath создается для скорости. Оно позволяет только читать документы XML без возможностей редактирования. >XPath создается для поверхностного выполнения быстрых итераций и выбора в документе XML. Функциональность >XPath представляется классом >XPathNavigator. Этот класс может использоваться вместо >XmlDocument, >XmlDataDocument и >XPathDocument. Если требуются средства редактирования, то следует выбрать >XmlDocument; при работе с ADO.NET будет использоваться класс >XmlDataDocument (мы увидим его позже в этой главе). Если имеет значение скорость, то применяйте в качестве хранилища >XPathDocument. Можно расширить >XPathNavigator для таких вещей, как файловая система или реестр в качестве хранилища. В следующей таблице перечислены классы >XPath с кратким описанием назначения каждого класса:

Имя классаОписание
>XPathDocumentПредставление всего документа XML. Только для чтения.
>XPathNavigatorПредоставляет навигационные возможности для >XPathDocument.
>XPathNodeIteratorОбеспечивает итерацию по множеству узлов. Является эквивалентом для множества узлов в >Xpath.
>XPathExpressionКомпилированное выражение >Xpath. Используется