Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Há duas maneiras de ler um documento XML no System.Xml.XPath namespace. Um método é ler um documento XML usando a classe de leitura apenas XPathDocument, e o outro é usar a classe editável XmlDocument no namespace System.Xml para ler um documento XML.
Lendo documentos XML usando a classe XPathDocument
A XPathDocument classe fornece uma representação rápida, somente leitura, na memória de um documento XML usando o modelo de dados XPath. As instâncias da XPathDocument classe são criadas usando um de seus seis construtores. Esses construtores permitem que você leia um documento XML usando um Stream, TextReaderou XmlReader objeto, bem como o string caminho para um arquivo XML.
O exemplo a seguir ilustra o uso do XPathDocument construtor da string classe para ler um documento XML.
Dim document As XPathDocument = New XPathDocument("books.xml")
XPathDocument document = new XPathDocument("books.xml");
Lendo documentos XML usando a classe XmlDocument
A XmlDocument classe é uma representação editável na memória de um documento XML que implementa o W3C Document Object Model (DOM) Nível 1 Core e Core DOM Nível 2. Instâncias da XmlDocument classe são criadas usando um de seus três construtores. Você pode criar um novo objeto vazio XmlDocument chamando o construtor de XmlDocument classe sem parâmetros. Depois de chamar o construtor, use o Load método para carregar dados XML no novo XmlDocument objeto de um Stream, TextReader ou XmlReader objeto, bem como o string caminho para um ficheiro XML.
O exemplo a seguir ilustra o uso do XmlDocument construtor de classe sem parâmetros e o Load método para ler um documento XML.
Dim document As XmlDocument = New XmlDocument()
document.Load("books.xml")
XmlDocument document = new XmlDocument();
document.Load("books.xml");
Determinando a codificação de um documento XML
Um XmlReader objeto pode ser usado para ler um documento XML e para criar XPathDocument e XmlDocument objetos, como mostrado nas seções anteriores. No entanto, um XmlReader objeto pode ler dados que não estão codificados e, como resultado, não fornece nenhuma informação de codificação.
A XmlTextReader classe herda da XmlReader classe, fornece informações de codificação usando sua Encoding propriedade e pode ser usada para criar um XPathDocument objeto ou XmlDocument objeto.
Para obter mais informações sobre as informações de codificação fornecidas pela XmlTextReader classe, consulte a Encoding propriedade na documentação de referência da XmlTextReader classe.
Criando objetos XPathNavigator
Depois de ler um documento XML em um XPathDocument ou XmlDocument objeto, você pode criar um XPathNavigator objeto para selecionar, avaliar, navegar e, em alguns casos, editar os dados XML subjacentes.
As classes XPathDocument e XmlDocument, além da classe XmlNode, implementam a interface IXPathNavigable do namespace System.Xml.XPath. Como resultado, todas as três classes fornecem um CreateNavigator método que retorna um XPathNavigator objeto.
Editando documentos XML usando a classe XPathNavigator
Além de selecionar, avaliar e navegar em dados XML, a XPathNavigator classe pode ser usada para editar um documento XML em alguns casos, com base no objeto que o criou.
A XPathDocument classe é somente leitura enquanto a XmlDocument classe é editável e, como resultado, XPathNavigator os objetos criados a partir de um XPathDocument objeto não podem ser usados para editar um documento XML, enquanto aqueles criados a partir de um XmlDocument objeto podem. A XPathDocument classe deve ser usada para ler apenas um documento XML. Nos casos em que você precisa editar um documento XML ou exigir acesso à funcionalidade adicional fornecida pela classe, como manipulação de XmlDocument eventos, a XmlDocument classe deve ser usada.
A CanEdit propriedade da XPathNavigator classe especifica se um XPathNavigator objeto pode editar dados XML.
A tabela a seguir descreve o CanEdit valor da propriedade para cada classe.
| IXPathNavigable Execução | Valor CanEdit |
|---|---|
| XPathDocument | false |
| XmlDocument | true |