Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существует два способа чтения XML-документа из пространства имен System.Xml.XPath. Одним из способов является чтение XML-документа с использованием класса XPathDocument только для чтения, а другим — чтение XML-документа с использованием редактируемого класса XmlDocument в пространстве имен System.Xml.
Чтение XML-документов с помощью класса XPathDocument
Класс XPathDocument предоставляет быстрое, доступное только для чтения представление XML-документа с помощью модели данных XPath. Экземпляры XPathDocument класса создаются с помощью одного из шести конструкторов. Эти конструкторы позволяют считывать XML-документ с помощью объектов Stream, TextReader или XmlReader, а также пути string
к XML-файлу.
В следующем примере показано использование XPathDocument конструктора string
класса для чтения XML-документа.
Dim document As XPathDocument = New XPathDocument("books.xml")
XPathDocument document = new XPathDocument("books.xml");
Чтение XML-документов с помощью класса XmlDocument
Класс XmlDocument — это редактируемое в памяти представление XML-документа, реализующего объектную модель W3C (DOM) уровня 1 Core и Core DOM уровня 2. Экземпляры XmlDocument класса создаются с помощью одного из трех конструкторов. Вы можете создать новый пустой XmlDocument объект, вызвав XmlDocument конструктор класса без параметров. После вызова конструктора используйте метод Load для загрузки XML-данных в новый объект XmlDocument из объекта Stream, TextReader, или XmlReader, а также из string
пути к XML-файлу.
В следующем примере показано использование конструктора XmlDocument классов без параметров и Load метода для чтения XML-документа.
Dim document As XmlDocument = New XmlDocument()
document.Load("books.xml")
XmlDocument document = new XmlDocument();
document.Load("books.xml");
Определение кодировки XML-документа
Объект XmlReader можно использовать для чтения XML-документа и создания объектов XPathDocument и XmlDocument, как показано в предыдущих разделах. XmlReader Однако объект может считывать данные, которые не закодированы, и в результате не предоставляет никаких сведений о кодировке.
Класс XmlTextReader наследует от XmlReader класса, предоставляет сведения о кодировке с помощью его Encoding свойства и может использоваться для создания XPathDocument объекта или XmlDocument объекта.
Дополнительная информация о кодировке, предоставленной классом XmlTextReader, см. свойство Encoding в документации по ссылке на класс XmlTextReader.
Создание объектов XPathNavigator
После чтения XML-документа в XPathDocument объект или XmlDocument объект можно создать XPathNavigator объект для выбора, оценки, навигации и в некоторых случаях изменения базовых XML-данных.
Оба класса XPathDocument и XmlDocument, в дополнение к классу XmlNode, реализуют интерфейс IXPathNavigable пространства имен System.Xml.XPath. В результате все три класса предоставляют CreateNavigator метод, возвращающий XPathNavigator объект.
Редактирование XML-документов с помощью класса XPathNavigator
Помимо выбора, оценки и навигации по XML-данным XPathNavigator , класс можно использовать для редактирования XML-документа в некоторых случаях на основе созданного объекта.
Класс XPathDocument доступен только для чтения, в то время как класс XmlDocument является редактируемым, и в результате объекты XPathNavigator, созданные из объекта XPathDocument, нельзя использовать для редактирования XML-документа, а объекты, созданные из объекта XmlDocument, можно. Класс XPathDocument должен использоваться только для чтения XML-документа. В случаях, когда необходимо изменить XML-документ или требовать доступ к дополнительным функциям, предоставляемым XmlDocument классом, например обработкой событий, XmlDocument следует использовать класс.
Свойство CanEditXPathNavigator класса указывает, может ли XPathNavigator объект изменять XML-данные.
В следующей CanEdit таблице описывается значение свойства для каждого класса.
IXPathNavigable Реализация | значение CanEdit |
---|---|
XPathDocument | false |
XmlDocument | true |