Como a consulta XML com uma expressão XPath usando translation from VPE for Csharp Visual

Traduções deste artigo Traduções deste artigo
ID do artigo: 308333 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo demonstra como consultar um objeto XPathDocument com uma expressão de XML Path Language (XPath) usando a classe XPathNavigator . XPath é usado programaticamente para avaliar expressões e selecionar nós específicos em um documento.

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Translation from VPE for Csharp Visual
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Terminologia XML
  • Criar e ler um arquivo XML
  • Sintaxe do XPath

Como consultar XML com uma expressão XPath

  1. Crie um novo aplicativo de console translation from VPE for Csharp Visual no Visual Studio.

    Observação : Este exemplo usa um arquivo chamado Books.XML. Você pode criar seu próprio arquivo Books.XML ou você pode usar o exemplo que acompanha o QuickStarts .NET Software Development Kit (SDK). Se você não tem o QuickStarts instalado e não deseja instalá-las, consulte a seção "Referências" para o Books.XML local do download. Se você tiver o QuickStarts instalado, o arquivo pode ser encontrado na seguinte pasta:
    Programa Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    Você deve copiar o arquivo para a pasta \Bin\Debug, que está localizada na pasta na qual você criou este projeto.
  2. Certifique-se que o projeto referências do namespace System.XML .
  3. Use a instrução usando em namespaces XML e o XPath para que não é necessário para qualificar declarações esses namespaces posteriormente no seu código. Você deve usar a instrução usando antes para qualquer outra declaração, da seguinte forma:
    using System.Xml;
    using System.Xml.XPath;
    					
  4. Declare as variáveis apropriadas. Declare um objeto XPathDocument para armazenar o documento XML, um objeto XpathNavigator para avaliar expressões XPath e um objeto XPathNodeIterator para iterar através de nós selecionados. Declare um objeto String para armazenar as expressões XPath. Adicione o código declaração da função principal na Class1.
       XPathNavigator nav;
       XPathDocument docNav;
       XPathNodeIterator NodeIter;
       String strExpression;
    					
  5. Carregar um XPathDocument com o arquivo de exemplo Books.XML. A classe XPathDocument usa XSLT (Extensible Stylesheet Language Transformations) para fornecer um cache rápido e orientados a desempenho de processamento do documento XML. É semelhante para o objeto modelo DOM (Document), mas é altamente otimizada para processamento de XSLT e o modelo de dados do XPath.
        // Open the XML.
        docNav = new XPathDocument(@"c:\books.xml");
    					
  6. Criar um XPathNavigator a partir do documento. O objeto XPathNavigator é usado para consultas XPath somente leitura. As consultas XPath podem retornar um valor resultante ou muitos de nós.
         // Create a navigator to query with XPath.
         nav = docNav.CreateNavigator();
    					
  7. Crie uma expressão XPath para localizar o custo médio de um livro. Essa expressão XPath retorna um valor único. Para obter detalhes completos na sintaxe do XPath, consulte "Sintaxe XPath" na seção "Referências".
         // Find the average cost of a book.
         // This expression uses standard XPath syntax.
         strExpression = "sum(/bookstore/book/price) div count(/bookstore/book/price)";
    					
  8. Use o método Evaluate do objeto XPathNavigator para avaliar a expressão XPath. O método Evaluate retorna os resultados da expressão.
        // Use the Evaluate method to return the evaluated expression.
        Console.WriteLine("The average cost of the books are {0}", nav.Evaluate(strExpression));
  9. Crie uma expressão XPath para localizar todos os livros que custam mais de dez dólares. Essa expressão XPath retorna somente nós de título de origem XML.
        // Find the title of the books that are greater then $10.00.
        strExpression = "/bookstore/book/title[../price>10.00]";
    					
  10. Crie um XPathNodeIterator para os nós que estão selecionados com o método Select de XPathNavigator . XPathNodeIterator representa um conjunto de nós XPath e, portanto, oferece suporte a operações neste conjunto de nós.
        // Select the node and place the results in an iterator.
        NodeIter = nav.Select(strExpression);
  11. Use o XPathNodeIterator , que foi retornado do método Select de XPathNavigator , para percorrer os nós selecionados. Nesse caso, você pode usar o método MoveNext do XPathNodeIterator para iterar por todos os nós selecionados.
      Console.WriteLine("List of expensive books:");
      //Iterate through the results showing the element value.
      while (NodeIter.MoveNext())
      {
          Console.WriteLine("Book Title: {0}", NodeIter.Current.Value);
      };
    					
  12. Use o método ReadLine para adicionar uma pausa no final da exibição do console para exibir os resultados acima mais prontamente.
        // Pause
        Console.ReadLine();
    					
  13. Compile e execute seu projeto. Observe que os resultados são exibidos na janela do console.

Solução de problemas

Quando você testar o código, você receberá a seguinte mensagem de erro exceção:
Ocorreu uma exceção sem tratamento do tipo 'System.Xml.XmlException' na System.XML.dll

Obter informações adicionais: erro do sistema.
O erro de exceção ocorre na linha de código a seguir:
docNav = new XPathDocument("c:\\books.xml");
				
o erro de exceção é causado por uma instrução de processamento inválido. Por exemplo, a instrução de processamento pode conter espaços estranhos. A seguir está um exemplo de uma instrução de processamento inválido:
<?xml version='1.0' ?>
para resolver a exceção, siga um destes procedimentos:
  • Corrija a instrução de processamento inválido. A seguir está um exemplo de uma instrução de processamento válido:
    <?xml version='1.0'?>
    - ou -
  • Remova a instrução de processamento XML do arquivo Books.XML.

Referências

O seguinte arquivo está disponível para download no Centro de download da Microsoft:
Recolher esta imagemExpandir esta imagem
Download
Download Books.xml now
Para obter mais informações, visite os seguintes sites:
XML no. NET: classes XML do .NET Framework e translation from VPE for Csharp oferecer manipulação de dados simples, escalonável
http://msdn.microsoft.com/msdnmag/issues/01/01/xml/default.aspx

Classe XPathNavigator
http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathnavigator.aspx

Classe XPathDocument
http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathdocument.aspx

Classe XPathNodeIterator
http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathnodeiterator.aspx

Transformações em XSLT com a classe XslTransform
http://msdn.microsoft.com/en-us/library/47yh29a9.aspx

Sintaxe do XPath
http://msdn2.microsoft.com/en-us/library/ms763742.aspx
Para obter mais informações sobre o XPath, visite o seguinte site da World Wide Web Consortium (W3C):
XML Path Language (XPath)
Versão 1.0: Recomendação do W3C 16 de novembro de 1999
http://www.w3.org/TR/1999/REC-xpath-19991116

Propriedades

ID do artigo: 308333 - Última revisão: quinta-feira, 13 de março de 2008 - Revisão: 7.2
A informação contida neste artigo aplica-se a:
  • Microsoft ADO.NET 1.0
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbdownload kbhowtomaster KB308333 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 308333

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com