Maison > Article > développement back-end > XML (3) XDocument et XmlDocument lisent de manière récursive les fichiers XML
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.
(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>
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>
É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>
<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 est plus compliqué que XDocument.
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 (. www.php.cn ) !