XML (3) XDocument et XmlDocument lisent de manière récursive les fichiers XML

黄舟
Libérer: 2017-02-10 16:31:46
original
2432 Les gens l'ont consulté

Lisez le fichier XML dans TreeView via XDocument et XmlDocument, qui chargent principalement de manière récursive les éléments sous le XML dans le contrôle TreeView.

>

(2) Obtenez le nœud racine

(3) Chargez l'élément racine XML à la racine TreeView node

(4) Charger récursivement les éléments sous l'élément racine (créer une méthode ici)


<span style="font-size:18px;">//1、读取xml文件(XDocument)
            //加载xml文件
            XDocument document = XDocument.Load("list1.xml");
            //2、先获取根节点
            XElement rootElement = document.Root;
            //3、将xml的根元素加载到TreeView的根节点上
            TreeNode rootNode = treeView1.Nodes.Add(rootElement.Name.ToString());
            //4、递归加载
            LoadXmlToTreeView(rootElement, rootNode.Nodes);</span>
Copier après la connexion


XmlDocument

<span style="font-size:18px;"> private void LoadXmlToTreeView(XElement rootElement, TreeNodeCollection treeNodeCollection)
        {
            //获取根元素rootElement下面的所有直接子元素
            //rootElement.Elements();
            foreach (XElement item in rootElement.Elements())
            {
                if (item.Elements().Count()==0)
                {

                    treeNodeCollection.Add(item.Name.ToString ()).Nodes .Add(item.Value);
                }
                else
                {
                    //将当前子元素加到TreeView的节点集合上
                    TreeNode node = treeNodeCollection.Add(item.Name.ToString());
                    LoadXmlToTreeView(item, node.Nodes);
                }
                

            }
        }</span>
Copier après la connexion

Étapes : Les trois premières étapes de XmlDocument sont similaires à celles de XmlDocument. Le chargement récursif de la quatrième étape est principalement visible à partir du code.


Résumé

<span style="font-size:18px;">//1、加载xml文件到对象
            XmlDocument document = new XmlDocument();
            //2、将xml文件加载到dom对象上
            document.Load("List1.xml");
            //3、获得xml根节点
            XmlElement rootElement = document.DocumentElement;
            //将xml根元素加载到TreeView上
            TreeNode rootnode = treeView1.Nodes.Add(rootElement.Name);
            //实现递归将xml文件加载到treeview上
            LoadxmltoTreeViews(rootElement, rootnode.Nodes);</span>
Copier après la connexion
<span style="font-size:18px;">private void LoadxmltoTreeViews(XmlElement rootElement, TreeNodeCollection treeNodeCollection)
        {

            //循环rootElement下的所有子元素加载到TreeNodeCollection集合中
            foreach (XmlNode item in rootElement.ChildNodes)
            {
                //在继续之前需要判断一下当前节点是什么类型的节点
                if (item.NodeType ==XmlNodeType .Element )
                {
                    //如果当前节点是一个元素,则把该元素加载到TreeView上
                    TreeNode node= treeNodeCollection.Add(item.Name);
                    //递归调用
                    LoadxmltoTreeViews((XmlElement)item, node.Nodes);

                }
                else if (item.NodeType ==XmlNodeType .Text |item.NodeType ==XmlNodeType .CDATA)
                {
                    treeNodeCollection.Add(item.InnerText);

                }
            }
        }</span>
Copier après la connexion

(1) XmlDocument est plus compliqué que XDocument.

(2) XmlDocument est une classe de lecture et d'écriture XML standard, elle dispose donc d'un large éventail d'extensions. XDocument est une version améliorée de XmlDocument et ne peut pas être utilisé sur d'autres plates-formes. car ces plates-formes peuvent utiliser le XmlDocument d'origine, mais certaines méthodes ou propriétés de XDocument n'existent pas ici. Il y a donc certaines limites.

(3) La variable sucre syntaxique dans la boucle foreach peut identifier le type pour XDocument, mais pas pour XmlDocument, mais la classe parent de la classe parent de XmlElement est XmlNode.

Ce qui précède est XML (3) XDocument et XmlDocument lisent de manière récursive le contenu des fichiers XML. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (. m.sbmmt.com ) !

Étiquettes associées:
xml
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!