Как заполнить элемент управления TreeView с данными XML в Visual C# 2005 или Visual C#.NET

Переводы статьи Переводы статьи
Код статьи: 317597 - Vizualiza?i produsele pentru care se aplic? acest articol.
Для Microsoft Visual Basic.NET версии данной статьи, см. 308063.
Развернуть все | Свернуть все

В этой статье

Аннотация

Шаг по шагу статья посвящена для заполнения TreeView Управление с помощью данных Extensible Markup Language (XML) в Microsoft Visual C# 2005 или Microsoft Visual C#.NET. Поскольку оба XML и TreeView элемент управления представления данных в иерархическом формате TreeView элемент управления является естественным выбором для отображения данных XML.

В TreeView элемент управления имеет Узлы Коллекция с корнем Узлов дерева объекты. Каждый Узлов дерева в свою очередь имеет свой собственный Узлы Коллекция, содержащая более одного дочернего элемента Узлов дерева.

Примечание В этом примере используется анализ классов модели объектов документов (DOM) о.NET для обработки XML.

Для получения дополнительных сведений о создании XML в.NET Framework, см.»Ссылки"раздел.

Требования

В следующем списке представлены оборудования, программного обеспечения, сетевой инфраструктуры и пакетов обновления, необходимо:
  • Microsoft Windows XP, Microsoft Windows 2000 или Microsoft Windows NT 4.0 с пакетом обновления 6a (SP6a)
  • Компоненты MDAC 2.6 (MDAC) или позже
  • Microsoft Visual Studio 2005 или Microsoft Visual Studio.NET
Предполагается, что вы знакомы с следующие темы:
  • Синтаксис Visual C# 2005 или Visual C#.NET на этой странице
  • XML и соответствующих стандартам
  • Windows Forms

Шаги для создания и заполнения элемента управления TreeView с XML

  1. Вставьте следующий код в новый текстовый файл с именем «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-данных. Часть данных, для отображения могут быть динамически созданный результат расширяемая Преобразование языка стилей (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 в дополнение к исходным данным.

ССЫЛКИ

Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
313651План использования XML в.NET Framework
Для получения дополнительных сведений посетите следующие веб-узлы 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

Свойства

Код статьи: 317597 - Последний отзыв: 7 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • 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
Ключевые слова: 
kbbcl kbctrl kbhowtomaster kbwindowsforms kbmt KB317597 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:317597

Отправить отзыв

 

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