A manipulação de arquivos XML é muito comum porque eles têm uma ampla aplicação que inclui formato de arquivo no Microsoft Office e Google docs, trocas de dados B2B, etc.
XmlDocument e XPathDocument são várias formas ou namespaces para lidar com arquivos XML. Mas eles têm uma abordagem diferente e também variam de recurso para recurso.
XmlDocument e XPathDocument dependem do número de funções que o usuário precisa realizar com um determinado XML documento.
Principais lições
- XmlDocument dá suporte à leitura e gravação de dados XML, enquanto XPathDocument é uma classe somente leitura.
- XPathDocument oferece melhor desempenho e eficiência de memória do que XmlDocument ao executar consultas XPath.
- XmlDocument pode manipular a estrutura de dados XML, tornando-a adequada para cenários de modificação de dados, enquanto XPathDocument é ideal para avaliação e extração de XPath.
XmlDocument vs XPathDocument
A diferença entre XmlDocument e XPathDocument é que XmlDocument possui recursos de leitura e gravação, enquanto XPathDocument só pode ler os arquivos no formato XML. Como o XPathDocument não possui nenhum recurso de gravação, ele é mais leve em tamanho, mas não tem a flexibilidade do XmlDocument, pois mais funções podem ser executadas no último.
XmlDocument é definido como uma classe na memória que representa o documento XML. Os usuários podem usar esta classe para realizar várias funções como carregar, validar, adicionar, editar e posicionar XML em um documento.
XmlDocument implementa o W3C XML DOM (Document Object Model) Nível 1 e Nível 2 Núcleo. XmlDocument permite que um XML seja carregado no DOM, seguido pelas modificações necessárias.
A classe XPathDocument também fornece uma representação na memória do documento XML, mas ao contrário de XmlDocument, ela não permite nenhuma capacidade de gravação.
XPathDocument fornece um recurso somente leitura usando o XPath modelo de dados. XPathDocument se aplica tanto ao .NET Core quanto ao .NET Framework.
Tabela de comparação
Parâmetros de comparação | XmlDocumentName | Documento XPath |
---|---|---|
Abordagem | XmlDocument tem uma abordagem orientada a objetos. Isso consiste em criar e vincular um objeto a um arquivo específico. | XPathDocument tem uma abordagem orientada a dados. |
Ler escrever | XmlDocument pode executar funções de leitura e gravação, adicionando novos nós e excluindo os existentes. | XPathDocument só pode executar a função de leitura e não tem a opção de modificar um documento XML. |
Flexibilidade | Como o XmlDocument pode executar várias funções, como ler, gravar, excluir, adicionar e modificar atributos, ele é muito flexível. | XPathDocument não é tão flexível quanto XmlDocument, pois o primeiro só pode ler arquivos XML. |
Criação de documentos | XmlDocument é capaz de criar um documento do zero e fazer alterações nele. | XPathDocument não pode criar documentos, então o usuário deve certificar-se de que o arquivo existe antes de acessá-lo. |
Velocidade | XmlDocument não é o preferido quando arquivos grandes são abertos apenas para leitura porque torna o processo mais lento. | Devido à sua simplicidade, XPathDocument pode abrir e ler arquivos grandes rapidamente. |
O que é XmlDocument?
A representação na memória de um documento XML que pode ler, gravar e modificar atributos do arquivo, bem como a classe XmlDocument.
Como executa muitas funções, XmlDocument é preferível ao XpathDocument para todas as instâncias e propósitos gerais. Porém, o XmlDocument retarda o processo de abertura de arquivos muito grandes, o que é uma desvantagem dele.
Ao abrir um arquivo XML no DOM, se o local específico do arquivo ao qual o usuário se refere estiver vazio, ele gera um novo XML e o carrega.
Esta é uma das maiores vantagens do XmlDocument que pode criar um novo arquivo instantaneamente e fazer alterações nele.
XmlDocument permite ao usuário navegar por vários nós de um arquivo. Ele pode acessar os nós pai e filho e também pode navegar para frente e para trás nos nós irmãos.
Ao usar XmlDocument, o XPath pergunta string é usado para localizar um ou vários nós dos dados.
Além de localizar e acessar vários nós de diferentes níveis, o XmlDocument também pode adicionar ou editar os nós.
Para adicionar novos nós, o método CreateElement ou CreateNode é usado e para excluir o método RemoveChild é usado. As posições dos nós também podem ser alteradas de acordo com a conveniência.
O que é XPathDocument?
A classe XPathDocument é bem conhecida por sua representação na memória somente leitura de arquivos XML. É uma classe muito simples e não executa tantas funções nos arquivos ou em seus nós.
XPathDocument pode ler arquivos maiores muito rapidamente; assim, quando o usuário só precisa ler um arquivo XML, XPathDocument é preferível a XmlDocument.
Existem vários construtores para o XPathDocument usados para várias finalidades. Por exemplo, XPathDocument(Stream) é usado para inicializar uma nova instância dessa classe no objeto Stream.
Da mesma forma, o XPathDocument(String) também inicializa uma nova instância dos dados XML, mas não especificamente no objeto Stream. Alguns dos outros construtores são XPathDocument(TextReader), XPathDocument(XmlReader), etc.
Em XPathDocument, o método CreateNavigator() é usado para inicializar um objeto XPathNavigator somente leitura. Isso lê todos os nós existentes no XPathDocument.
O método equals (Object) é usado para verificar se o objeto especificado é igual ao objeto atual ou não. Também existem outros métodos em XPathDocument, que aprimoram até mesmo suas funções limitadas.
Principais diferenças entre XmlDocument e XPathDocument
- XmlDocument tem uma abordagem orientada a objetos ao acessar e modificar arquivos XML, enquanto XPathDocument tem uma abordagem orientada a dados.
- XmlDocument é muito flexível porque pode executar funções de leitura e gravação, enquanto XPathDocument pode ser usado quando o usuário precisa apenas ler um documento XML.
- XmlDocument é altamente flexível porque pode adicionar novos nós e excluir os existentes, mas XPathDocument não possui esses recursos.
- Enquanto XmlDocument pode criar um novo arquivo do zero e, em seguida, fazer várias modificações nele, XPathDocument não pode criar um novo arquivo do zero.
- XPathDocument é uma opção melhor para fins somente leitura porque pode abrir arquivos ainda maiores muito rapidamente, enquanto XmlDocument é usado para outros fins.
- https://www.sciencedirect.com/science/article/pii/S0306437908000070
- https://link.springer.com/chapter/10.1007/978-1-4842-2595-0_2
Última atualização: 11 de junho de 2023
Sandeep Bhandari é bacharel em Engenharia de Computação pela Thapar University (2006). Possui 20 anos de experiência na área de tecnologia. Ele tem grande interesse em vários campos técnicos, incluindo sistemas de banco de dados, redes de computadores e programação. Você pode ler mais sobre ele em seu página bio.
Achei o rigor e a precisão do artigo muito impressionantes.
Este artigo me manteve engajado o tempo todo, muito bem!
Estou simplesmente impressionado com a profundidade e cobertura do tópico. Ótimo trabalho!
Acho a peça extremamente informativa e esclarecedora.
Concordo plenamente, Maisie!
A comparação foi apresentada de forma muito clara e organizada.
Este artigo é uma fonte valiosa de insights sobre XmlDocument e XPathDocument.
Este artigo oferece uma comparação abrangente de XmlDocument e XPathDocument, o que é muito elucidativo.
Eu esperava uma narrativa mais convincente sobre esse assunto.