Partilhar via


Lendo dados XML usando XPathDocument e XmlDocument

Há duas maneiras de ler um documento XML no System.Xml.XPath namespace. Um é ler um documento XML usando a classe somente XPathDocument leitura e o outro é ler um documento XML usando a classe editável XmlDocument no System.Xml namespace.

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, TextReaderou XmlReader objeto, bem como o string caminho para um arquivo 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 objetos como XmlDocument 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.

XPathDocument As classes eXmlDocument, além da XmlNode classe, implementam a IXPathNavigableSystem.Xml.XPath interface do namespace. 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, os objetos criados a partir de um XPathDocument objeto não podem ser usados para editar um documento XML, XPathNavigator 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 CanEdit Valor
XPathDocument false
XmlDocument true

Consulte também