Como preencher um controlo TreeView com dados XML no Visual C# 2005 ou no Visual C# .NET

Traduções de Artigos Traduções de Artigos
Artigo: 317597 - Ver produtos para os quais este artigo se aplica.
Para obter uma Microsoft Visual Basic .NET versão deste artigo, consulte 308063.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo pelo passo descreve como preencher um controlo TreeView utilizando dados de XML (Extensible Markup Language) no Microsoft Visual C# 2005 ou no Microsoft Visual C# .NET. Porque o XML e o controlo TreeView representarem os dados num formato hierárquico, o controlo TreeView é uma opção natural para apresentar dados XML.

O controlo TreeView tem um conjunto de nós com raiz TreeNode objectos. Cada TreeNode tem na sua própria colecção de nós que contém mais do que uma criança TreeNode .

Nota Este exemplo utiliza o Document Object Model (DOM) análise classes do .NET para o processo de XML.

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

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • 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 está familiarizado com os seguintes tópicos:
  • A sintaxe do Visual C# .NET ou Visual C# 2005 sintaxe
  • XML e padrões relacionados
  • Formulários do Windows

Passos para criar e preencher o controlo TreeView com XML

  1. Cole o seguinte código de exemplo XML num novo ficheiro de texto denominado "Sample.xml". Este ficheiro é 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 uma nova aplicação baseado no Windows no Visual C# 2005 ou no Visual C#. NET. Form1 é adicionado à aplicação por predefinição.
  3. Arraste novos controlos de caixa de texto , etiqueta , botão e TreeView Form1.
  4. Adicione o seguinte código de exemplo no fim da secção de directivas utilizando no Form1.cs:
    using System.Xml;
    					
  5. Cole o seguinte código de exemplo no 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 : tente
             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 de exemplo depois do 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. Prima F5 para compilar e executar a aplicação. Certifique-se de que o caminho de ficheiro XML está correcto e, em seguida, clique no botão . Os dados XML devem aparecer no controlo TreeView .
Nota O recurso pode ser um ficheiro, um URL ou uma sequência de XML. Consulte a secção "References" para obter informações sobre como utilizar a classe XmlDocument para carregar dados XML de diferentes recursos.

Passos para preencher o controlo TreeView com dados necessários

O exemplo de código anterior mapeia os dados da árvore XML directamente para a TreeView e apresenta todos os dados. Em alternativa, pode adicionar informações extra à visualização ou ignorar dados indesejados.

Em muitos casos, poderá apresentar apenas parte dos dados XML. A parte dos dados que pretende visualizar pode ser dinamicamente construída, o resultado de uma transformação XSL (Extensible Stylesheet Language) ou o resultado de uma consulta XPath. Esta secção descreve como criar um novo documento XML com apenas os nós necessários e, em seguida, adicionar o novo documento para o controlo TreeView .

Por exemplo, os seguintes passos obtém apenas os elementos subordinados dos dados XML originial utilizando a consulta XPath e, em seguida, adicionar esta lista como um novo nó a TreeView .
  1. Cole o seguinte código imediatamente 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. Compilar e executar a aplicação. Esta aplicação deve apresentar um novo nó de raiz "subordinados" em TreeView juntamente com os dados originais.

REFERÊNCIAS

Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
313651Informações gerais para XML no .NET Framework
Para mais informações, visite os seguintes Web 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

Artigo: 317597 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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