Como preencher um controle TreeView com dados XML no Visual Basic .NET

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: 308063
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 317597.
Para uma versão deste artigo do Microsoft Visual Basic 6.0, consulte 244954.

NESTA TAREFA

Sumário
Este artigo passo descreve como preencher um controle TreeView usando dados XML (Extensible Markup Language) no Visual Basic. NET. 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 "Referências" deste artigo.


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 .NET
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Sintaxe do Visual Basic .NET
  • 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 baseado no Windows no Visual Basic. 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 como a primeira linha o código de janela no Form1.vb:
    Imports System.Xml					
  5. No arquivo Form1.vb, substitua o código inteiro após a seção "Windows Form Designer gerou código" com o seguinte código de exemplo:
       Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.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)      Me.Text = "TreeView control from XML"      Me.Width = 336      Me.Height = 368      TreeView1.SetBounds(8, 72, 312, 264)   End Sub   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click      Try         ' SECTION 1. Create a DOM Document and load the XML data into it.         Dim dom As New XmlDocument()         dom.Load(TextBox1.Text)         ' SECTION 2. Initialize the treeview control.         TreeView1.Nodes.Clear()         TreeView1.Nodes.Add(New TreeNode(dom.DocumentElement.Name))         Dim tNode As New TreeNode()         tNode = TreeView1.Nodes(0)         ' SECTION 3. Populate the TreeView with the DOM nodes.         AddNode(dom.DocumentElement, tNode)         TreeView1.ExpandAll()      Catch xmlEx As XmlException         MessageBox.Show(xmlEx.Message)      Catch ex As Exception         MessageBox.Show(ex.Message)      End Try   End Sub   Private Sub AddNode(ByRef inXmlNode As XmlNode, ByRef inTreeNode As TreeNode)      Dim xNode As XmlNode      Dim tNode As TreeNode      Dim nodeList As XmlNodeList      Dim i As Long      ' Loop through the XML nodes until the leaf is reached.      ' Add the nodes to the TreeView during the looping process.      If inXmlNode.HasChildNodes() Then         nodeList = inXmlNode.ChildNodes         For i = 0 To nodeList.Count - 1            xNode = inXmlNode.ChildNodes(i)            inTreeNode.Nodes.Add(New TreeNode(xNode.Name))            tNode = inTreeNode.Nodes(i)            AddNode(xNode, tNode)         Next      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      End If   End Sub					
  6. 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 "Referências" deste artigo para 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.         Dim nodelist As XmlNodeList = dom.SelectNodes("//child")         Dim cDom As New XmlDocument()         cDom.LoadXml("<children></children>")         Dim node As XmlNode         For Each node In nodelist            Dim newElem As XmlNode = cDom.CreateNode(XmlNodeType.Element, node.Name, node.LocalName)            newElem.InnerText = node.InnerText            cDom.DocumentElement.AppendChild(newElem)         Next         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 informações adicionais, consulte o seguinte artigo Base de dados de Conhecimento e a documentação Microsoft .NET Software Development Kit (SDK):
313651Mapa XML no .NET Framework
Desenvolvimento do Microsoft .NET
http://msdn.microsoft.com/xml
kbTreeView

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 308063 - Última Revisão: 12/06/2015 05:43:08 - Revisão: 4.4

Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbmt kbtreeview kbbcl kbctrl kbhowtomaster kbwindowsforms KB308063 KbMtpt
Comentários