Heim  >  Artikel  >  Backend-Entwicklung  >  XML (3) XDocument und XmlDocument lesen rekursiv XML-Dateien

XML (3) XDocument und XmlDocument lesen rekursiv XML-Dateien

黄舟
黄舟Original
2017-02-10 16:31:462445Durchsuche

Lesen Sie die XML-Datei über XDocument und XmlDocument in TreeView ein, wodurch die Elemente unter XML hauptsächlich rekursiv in das TreeView-Steuerelement geladen werden.

>

(2) Holen Sie sich den Wurzelknoten

(3) Laden Sie das XML-Wurzelelement in das TreeView-Stammverzeichnis Knoten

(4) Elemente unterhalb des Stammelements rekursiv laden (hier eine Methode erstellen)


<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>


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>

Schritte : Die ersten drei Schritte von XmlDocument ähneln denen von Das rekursive Laden im vierten Schritt ist hauptsächlich aus dem Code ersichtlich.


Zusammenfassung

<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>
<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>

(1) XmlDocument ist komplizierter als XDocument.

(2) XmlDocument ist eine Standard-XML-Lese- und Schreibklasse und verfügt daher über eine Vielzahl von Erweiterungen. XDocument ist eine aktualisierte Version von XmlDocument und darf nicht auf anderen Plattformen verwendet werden. weil diese Plattformen möglicherweise Das ursprüngliche XmlDocument wird verwendet, aber einige Methoden oder Eigenschaften von XDocument sind hier nicht vorhanden. Es gibt also bestimmte Einschränkungen.

(3) Die syntaktische Zuckervariable in der foreach-Schleife kann den Typ für XDocument identifizieren, nicht jedoch für XmlDocument, aber die übergeordnete Klasse der übergeordneten Klasse von XmlElement ist XmlNode.

Das Obige ist XML (3) XDocument und XmlDocument lesen rekursiv den Inhalt von XML-Dateien. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (). www.php.cn )!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn