Come popolare un controllo TreeView con i dati XML in Visual C# 2005 o Visual C# .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 317597 - Visualizza i prodotti a cui si riferisce l?articolo.
Per la una versione di Microsoft Visual Basic .NET di questo articolo, vedere 308063.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo passaggio per passaggio viene descritto come popolare un controllo di TreeView utilizzando dati XML (Extensible Markup Language) in Microsoft Visual C# 2005 o Microsoft Visual C#. NET. Poiché sia XML e il controllo di TreeView rappresentano i dati in un formato gerarchico, il controllo TreeView è una scelta naturale per visualizzare i dati XML.

Il controllo TreeView dispone di un insieme di nodi con oggetti TreeNode principale. Ogni TreeNode a sua volta ha il proprio insieme di nodi che contiene più figli di TreeNode .

Nota Questo esempio si utilizza il DOM (Document Object Model) l'analisi di classi di .NET di processo XML.

Per ulteriori informazioni e la struttura del XML in .NET Framework, vedere la sezione "References".

Requisiti

Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack è necessario:
  • Microsoft Windows XP, Microsoft Windows 2000 o Microsoft Windows NT 4.0 Service Pack 6a
  • Microsoft Data Access Components 2.6 (MDAC) o versione successiva
  • Microsoft Visual Studio 2005 o Microsoft Visual Studio .NET
In questo articolo si presume la conoscenza dei seguenti argomenti:
  • Sintassi di Visual C# 2005 o sintassi di Visual C# .NET
  • XML e gli standard correlati
  • Windows Form

Passaggi per creare e popolare il controllo TreeView con XML

  1. Incollare il codice di esempio XML riportato di seguito in un nuovo file di testo denominato "Sample.xml". Questo file contiene i dati di XML tipo esempio per questo esempio:
    <?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. Consente di creare una nuova applicazione Windows in Visual C# 2005 o in Visual C#. NET. In base all'impostazione predefinita, Form1 verrà aggiunto all'applicazione.
  3. Trascinare nuovi controlli TreeView , Button , Label e TextBox nel Form1.
  4. Aggiungere il codice di esempio riportato di seguito alla fine della sezione di direttive utilizzando Form1.cs:
    using System.Xml;
    					
  5. Incollare il codice di esempio riportato di seguito nell'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. Incollare il codice riportato di seguito nell'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. Incollare il codice di esempio riportato di seguito dopo l'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. Premere F5 per generare ed eseguire l'applicazione. Verificare che il percorso del file XML sia corretto e quindi fare clic sul pulsante . I dati XML deve essere visualizzato nel controllo TreeView .
Nota La risorsa potrebbe essere un file, un URL o un flusso XML. Vedere la sezione "References" per informazioni sull'utilizzo la classe XmlDocument per caricare dati XML da diverse risorse.

Procedura per popolare il controllo TreeView con i dati necessari

Il precedente esempio di codice associa i dati della struttura XML direttamente nel controllo TreeView e visualizza tutti i dati. In alternativa, è possibile aggiungere informazioni supplementari per la visualizzazione o ignorare i dati non desiderati.

In molti casi, è possibile che si desidera visualizzare solo una parte dei dati XML. La parte dei dati che si desidera visualizzare potrebbe essere in modo dinamico creato, il risultato di una trasformazione XSL (Extensible Stylesheet Language) o il risultato di una query XPath. Questa sezione viene descritto come creare un nuovo documento XML con solo i nodi necessari e quindi aggiungere il nuovo documento al controllo TreeView .

La procedura seguente, ad esempio, recuperare solo elementi figlio di dati XML originial tramite query XPath e quindi aggiungerla l'elenco come un nuovo nodo a TreeView .
  1. Incollare il seguente codice immediatamente prima della riga TreeView1.ExpandAll nell'esempio precedente:
                // 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. Generare ed eseguire quindi l'applicazione. L'applicazione dovrebbe visualizzare un nuovo nodo principale "figlio" in TreeView in aggiunta ai dati originali.

RIFERIMENTI

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
313651Guida di orientamento per XML in .NET Framework
Per ulteriori informazioni, visitare i seguenti siti Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/system.xml(vs.71).aspx

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

Proprietà

Identificativo articolo: 317597 - Ultima modifica: giovedì 17 maggio 2007 - Revisione: 4.6
Le informazioni in questo articolo si applicano 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
Chiavi: 
kbmt kbbcl kbctrl kbhowtomaster kbwindowsforms KB317597 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 317597
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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