Πώς να συμπληρώσετε ένα στοιχείο ελέγχου TreeView με τα δεδομένα XML στο Visual C# 2005 ή Visual C# .NET

Για την Microsoft Visual Basic .NET έκδοση αυτού του άρθρου, ανατρέξτε στην ενότητα 308063 .

Σύνοψη

Το άρθρο βήμα προς βήμα περιγράφει τον τρόπο για να συμπληρώσετε ένα στοιχείο ελέγχου TreeView με χρήση δεδομένων Extensible Markup Language (XML) στο Microsoft Visual C# 2005 ή το Microsoft Visual C# .NET. Επειδή XML και το στοιχείο ελέγχου TreeView αναπαράσταση των δεδομένων σε μια ιεραρχική μορφή, το στοιχείο ελέγχου TreeView είναι μια φυσική επιλογή για την εμφάνιση δεδομένων XML.

Το στοιχείο ελέγχου TreeView έχει μια συλλογή κόμβων με ρίζας αντικείμενα TreeNode . Με τη σειρά τους, κάθε TreeNode έχει τη δική της συλλογή κόμβοι που περιέχει περισσότερα από ένα παιδιά TreeNode.

Σημείωση Αυτό το δείγμα χρησιμοποιεί το μοντέλο αντικειμένου εγγράφου (DOM) ανάλυση κλάσεις .NET διαδικασία XML.

Για περισσότερες πληροφορίες σχετικά με τη σχεδίαση του XML στο .NET Framework, ανατρέξτε στην ενότητα "αναφορές".

Απαιτήσεις

Η ακόλουθη λίστα περιγράφει το υλικού που συνιστώνται, λογισμικό, υποδομή δικτύου και τα service pack που χρειάζεστε:
  • Τα Microsoft Windows XP, τα Windows 2000 ή Microsoft Windows NT 4.0 Service Pack 6a
  • Microsoft Data Access Components 2.6 (MDAC) ή νεότερη έκδοση
  • Microsoft Visual Studio 2005 ή το Microsoft Visual Studio .NET
Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τα ακόλουθα θέματα:
  • Η σύνταξη της Visual C# 2005 ή Visual C# .NET σύνταξη
  • XML και τις σχετικές προδιαγραφές
  • Φόρμες των Windows

Βήματα για τη δημιουργία και συμπλήρωση του στοιχείου ελέγχου TreeView με XML

  1. Επικολλήστε το ακόλουθο δείγμα κώδικα XML σε ένα νέο αρχείο κειμένου με το όνομα "Sample.xml". Αυτό το αρχείο είναι το δείγμα δεδομένων XML για αυτό το παράδειγμα:
    <?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. Δημιουργήσετε μια νέα εφαρμογή που βασίζεται σε Windows στο Visual C# 2005 ή Visual C# .NET. Form1 προστίθεται στην εφαρμογή από προεπιλογή.
  3. Νέα στοιχεία ελέγχου TreeView, κουμπί, ετικέταςκαι πλαισίου κειμένου σύρετε Form1.
  4. Προσθέστε το ακόλουθο δείγμα κώδικα στο τέλος της ενότητας οδηγιών χρησιμοποιώντας στο Form1.cs:
    using System.Xml;
  5. Επικολλήστε το ακόλουθο δείγμα κώδικα στο συμβάν 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. Επικολλήστε τον ακόλουθο κώδικα στο συμβάν 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. Επικολλήστε το ακόλουθο δείγμα κώδικα μετά το 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. Πιέστε το πλήκτρο F5 για να δημιουργήσετε και να εκτελέσετε την εφαρμογή. Βεβαιωθείτε ότι η διαδρομή του αρχείου XML είναι σωστή και, στη συνέχεια, κάντε κλικ στο κουμπί. Τα δεδομένα XML, θα πρέπει να εμφανίζεται στο στοιχείο ελέγχου TreeView .
Σημείωση Ο πόρος μπορεί να είναι ένα αρχείο, μια διεύθυνση URL ή μια ροής XML. Ανατρέξτε στην ενότητα "αναφορές" για πληροφορίες σχετικά με τη χρήση της κλάσης XmlDocument φόρτωση δεδομένων XML από διαφορετικούς πόρους.

Βήματα για τη συμπλήρωση του στοιχείου ελέγχου TreeView με τα απαιτούμενα δεδομένα

Το προηγούμενο δείγμα κώδικα αντιστοιχίζει τα δεδομένα δέντρο XML απευθείας το
TreeView και εμφανίζει όλα τα δεδομένα. Εναλλακτικά, μπορείτε να προσθέσετε επιπλέον πληροφορίες για την εμφάνιση ή να παραλείψετε ανεπιθύμητα δεδομένα.

Σε πολλές περιπτώσεις, μπορεί να θέλετε να εμφανίσετε μόνο ένα μέρος των δεδομένων XML. Το τμήμα των δεδομένων που θέλετε να εμφανίσετε μπορεί να είναι δυναμικά κατασκευάζονται, το αποτέλεσμα ενός μετασχηματισμού Extensible Stylesheet Language (XSL) ή το αποτέλεσμα ένα ερώτημα XPath. Αυτή η ενότητα περιγράφει τον τρόπο για να δημιουργήσετε ένα νέο έγγραφο XML με μόνο τα απαιτούμενα κόμβους και στη συνέχεια να προσθέσετε το νέο έγγραφο του στοιχείου ελέγχου TreeView .

Για παράδειγμα, τα ακόλουθα βήματα ανάκτησης μόνο τα θυγατρικά στοιχεία των originial δεδομένων XML χρησιμοποιώντας ερώτημα XPath και στη συνέχεια να προσθέσετε αυτήν τη λίστα ως ένα νέο κόμβο το TreeView.
  1. Επικόλληση ακολουθεί κωδικό ακριβώς πριν από τη TreeView1.ExpandAll γραμμή στο προηγούμενο δείγμα:
                // 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. Δημιουργία και, στη συνέχεια, εκτελέστε την εφαρμογή. Αυτή η εφαρμογή θα πρέπει να εμφανίζει ένα νέο κόμβο ρίζας "τέκνα" στο TreeView μαζί με τα αρχικά δεδομένα.

ΑΝΑΦΟΡΈΣ

Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

313651 χάρτης για XML στο .NET Framework

Για περισσότερες πληροφορίες, επισκεφθείτε τις ακόλουθες τοποθεσίες του Microsoft Developer Network (MSDN) στο Web:
Ιδιότητες

Αναγνωριστικό άρθρου: 317597 - Τελευταία αναθεώρηση: 16 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια