Como preencher um controle TreeView com dados XML no Visual translation from VPE for Csharp 2005 ou no Visual translation from VPE for Csharp .NET

Traduções deste artigo Traduções deste artigo
ID do artigo: 317597 - Exibir os produtos aos quais esse artigo se aplica.
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 308063.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo descreve como preencher um controle TreeView usando dados XML (Extensible Markup Language) no Microsoft Visual translation from VPE for Csharp 2005 ou no Microsoft .NET translation from VPE for Csharp Visual. Porque o XML e o controle TreeView representam os dados em um formato hierárquico, o controle TreeView é uma escolha natural para exibir dados XML.

O controle TreeView tem uma coleção de nós com objetos de TreeNode raiz. Por sua vez, cada TreeNode tem sua própria coleção de nós que retém o filho mais de um TreeNode .

Observação Este exemplo usa o DOM (Document Object Model) Analisando classes do .NET para processar XML.

Para obter mais informações sobre o design de XML no .NET Framework, consulte a seção "References".

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Microsoft Windows XP, Microsoft Windows 2000 ou Microsoft Windows NT 4.0 Service Pack 6a
  • Microsoft Data Access Components 2.6 (MDAC) ou posterior
  • Microsoft Visual Studio 2005 ou o Microsoft Visual Studio .NET
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Sintaxe de translation from VPE for Csharp 2005 Visual ou sintaxe do Visual .NET translation from VPE for Csharp
  • XML e os padrões relacionados
  • Windows Forms

Etapas para criar e preencher o controle TreeView com XML

  1. Cole o seguinte código de exemplo do XML em um novo arquivo de texto chamado "Sample.xml". Este arquivo é os dados XML de exemplo para este exemplo:
    <?xml version="1.0"?>
    <family>
    <parent>id="grandfather"
        <parent>id="father"
             <parent>id="brother"
                <child>id="niece"
                </child>
             </parent>
             <parent>id="me"
                <child>id="son"</child>
                <child>id="daughter"</child>
             </parent>
             <child>id="sister"</child>
         </parent>
         <parent>id="uncle"
             <parent>id="cousin sister"
                <child>id="second cousin"</child>
             </parent>
             <child>id="cousin brother"</child>
         </parent>
    </parent>
    </family>
  2. Crie um novo aplicativo do Windows no Visual translation from VPE for Csharp 2005 ou no Visual translation from VPE for Csharp .NET. Form1 é adicionado ao aplicativo por padrão.
  3. Arraste os novos controles TreeView , Button , Label e TextBox para Form1.
  4. Adicione o seguinte código de exemplo no final da seção de diretivas usando de Form1.cs:
    using System.Xml;
    					
  5. Cole o seguinte código de exemplo o evento Form1_Load :
          
             // Initialize the controls and the form.
             label1.Text = "File Path";
             label1.SetBounds(8, 8, 50, 20);
             textBox1.Text = Application.StartupPath + "\\Sample.xml";
             textBox1.SetBounds(64, 8, 256, 20);
             button1.Text = "Populate the TreeView with XML";
             button1.SetBounds(8, 40, 200, 20);
             this.Text = "TreeView control from XML";
             this.Width = 336;
             this.Height = 368;
             treeView1.SetBounds(8, 72, 312, 264);
    					
  6. Cole o seguinte código no evento Button1_Click :
             try 
             {
                // SECTION 1. Create a DOM Document and load the XML data into it.
                XmlDocument dom = new XmlDocument();
                dom.Load(textBox1.Text);
    
                // SECTION 2. Initialize the TreeView control.
                treeView1.Nodes.Clear();
                treeView1.Nodes.Add(new TreeNode(dom.DocumentElement.Name));
                TreeNode tNode = new TreeNode();
                tNode = treeView1.Nodes[0];
    
                // SECTION 3. Populate the TreeView with the DOM nodes.
                AddNode(dom.DocumentElement, tNode);
                treeView1.ExpandAll();
             }
             catch(XmlException xmlEx)
             {
                MessageBox.Show(xmlEx.Message);
             }
             catch(Exception ex)
             {
                MessageBox.Show(ex.Message);
             }
    					
  7. Cole o seguinte código exemplo após o evento Button1_Click :
          private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
          {
             XmlNode xNode;
             TreeNode tNode;
             XmlNodeList nodeList;
             int i;
    
             // Loop through the XML nodes until the leaf is reached.
             // Add the nodes to the TreeView during the looping process.
             if (inXmlNode.HasChildNodes)
             {
                nodeList = inXmlNode.ChildNodes;
                for(i = 0; i<=nodeList.Count - 1; i++)
                {
                   xNode = inXmlNode.ChildNodes[i];
                   inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
                   tNode = inTreeNode.Nodes[i];
                   AddNode(xNode, tNode);
                }
             }
             else
             {
                // Here you need to pull the data from the XmlNode based on the
                // type of node, whether attribute values are required, and so forth.
                inTreeNode.Text = (inXmlNode.OuterXml).Trim();
             }
          }                  
       }
    }
    					
  8. Pressione F5 para compilar e executar o aplicativo. Verifique se o caminho do arquivo XML está correto e clique no botão . Os dados XML devem aparecer no controle TreeView .
Observação O recurso pode ser um arquivo, uma URL ou um fluxo XML. Consulte a seção "References" para obter informações sobre como usar a classe XmlDocument para carregar dados XML de diferentes recursos.

Etapas para preencher o controle TreeView com dados necessários

O exemplo de código anterior mapeia os dados de árvore XML diretamente em TreeView e exibe todos os dados. Como alternativa, você pode adicionar informações extras para a exibição ou ignorar dados não desejados.

Em muitos casos, convém exibir apenas parte dos dados XML. A parte dos dados que você deseja exibir pode ser dinamicamente construído, o resultado de uma transformação XSL (linguagem de folha de estilos extensível) ou o resultado de uma consulta XPath. Esta seção descreve como criar um novo documento XML com apenas os nós necessários e, em seguida, adicionar o novo documento para o controle TreeView .

Por exemplo, as seguintes etapas recuperar apenas os elementos filho dos dados XML originial usando consulta XPath e, em seguida, adicionar esta lista como um novo nó TreeView .
  1. Colar o seguinte código apenas antes da linha TreeView1.ExpandAll no exemplo anterior:
                // SECTION 4. Create a new TreeView Node with only the child nodes.
                XmlNodeList nodelist = dom.SelectNodes("//child");
                XmlDocument cDom = new XmlDocument();
                cDom.LoadXml("<children></children>");
                foreach(XmlNode node in nodelist)
                {
                   XmlNode newElem = cDom.CreateNode(XmlNodeType.Element, node.Name, node.LocalName);
                   newElem.InnerText = node.InnerText;
                   cDom.DocumentElement.AppendChild(newElem);
                }
             
                treeView1.Nodes.Add(new TreeNode(cDom.DocumentElement.Name));
                tNode = treeView1.Nodes[1];
                AddNode(cDom.DocumentElement, tNode);
    					
  2. Criar e executar o aplicativo. Este aplicativo deve exibir um novo nó raiz "filhos" em TreeView juntamente com os dados originais.

REFERÊNCIAS

Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
313651Mapa XML no .NET Framework
Para obter mais informações, visite os seguintes sites da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/system.xml(vs.71).aspx

http://msdn2.microsoft.com/en-us/xml/default.aspx

Propriedades

ID do artigo: 317597 - Última revisão: quinta-feira, 17 de maio de 2007 - Revisão: 4.6
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Palavras-chave: 
kbmt kbbcl kbctrl kbhowtomaster kbwindowsforms KB317597 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: 317597

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