Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Существует два способа чтения 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 |