首页 > 代码库 > C# Xml Linq XDocument 基本操作
C# Xml Linq XDocument 基本操作
person.xml
<?xml version="1.0" encoding="utf-8"?><MyP> <P1> <Person id="cz001"> <Name>张三</Name> <Age>18</Age> </Person> <Person id="cz002"> <Name>李四</Name> <Age>19</Age> </Person> <Person id="cz003"> <Name>王五</Name> <Age>20</Age> </Person> </P1> <P2> <Person> <Name>张三2</Name> <Age>18</Age> </Person> <Person> <Name>李四2</Name> <Age>19</Age> </Person> <Person> <Name>王五2</Name> <Age>20</Age> </Person> </P2></MyP>
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace Xml操作{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //读取XML System.Xml.Linq.XDocument xdoc = System.Xml.Linq.XDocument.Load("person.xml"); System.Xml.Linq.XElement xeRoot = xdoc.Root; //根节点 System.Xml.Linq.XElement xele = xeRoot.Element("P1").Element("Person"); //子节点 MessageBox.Show("id=" + xele.Attribute("id").Value); //cz001 foreach (var ele in xele.Elements()) { string str = string.Format("Name={0},Value=http://www.mamicode.com/{1}", ele.Name.ToString(), ele.Value); MessageBox.Show(str); } } private void Form1_Load(object sender, EventArgs e) { //*读取XML数据加载到treeView1列表中。 //1、加载person.xml System.Xml.Linq.XDocument xdoc = System.Xml.Linq.XDocument.Load("person.xml"); //2、获取根节点,MyP System.Xml.Linq.XElement xeRoot = xdoc.Root; //3、先把根节点添加到treeView1上 TreeNode treeViewRoot = treeView1.Nodes.Add(xeRoot.Name.LocalName); //4、开始遍历所有的子节点,使用递归 LoadTreeNodes(xeRoot, treeViewRoot); //*写入XML文件。 //1、创建XML对象 System.Xml.Linq.XDocument xdocument = new System.Xml.Linq.XDocument(); //2、创建跟节点 System.Xml.Linq.XElement eRoot = new System.Xml.Linq.XElement("根节点"); //添加到xdoc中 xdocument.Add(eRoot); //3、添加子节点 System.Xml.Linq.XElement ele1 = new System.Xml.Linq.XElement("子节点1"); ele1.Value = "内容1"; eRoot.Add(ele1); //4、为ele1节点添加属性 System.Xml.Linq.XAttribute attr = new System.Xml.Linq.XAttribute("url", "http://www.baidu.com"); ele1.Add(attr); //5、快速添加子节点方法 eRoot.SetElementValue("子节点2", "内容2"); //6、快速添加属性 ele1.SetAttributeValue("id", 12); //7、最后保存到文件,也可以写入到流中。 xdocument.Save("123.xml"); } private void LoadTreeNodes(System.Xml.Linq.XElement xeRoot, TreeNode treeViewRoot) { //把xeRoot下面的所有内容循环绑定treeView上 foreach (System.Xml.Linq.XElement ele in xeRoot.Elements()) { //判定子根节点下是否还有子节点 if (ele.Elements().Count() > 0) { TreeNode node = treeViewRoot.Nodes.Add(ele.Name.ToString()); //写入Name值 //获取节点上的属性方法 System.Xml.Linq.XAttribute attr = ele.Attribute("id"); if (attr != null) { node.Text += string.Format(" [{0}={1}]", attr.Name, attr.Value); } LoadTreeNodes(ele, node); //遍历循环 } else { treeViewRoot.Nodes.Add(ele.Value); //写入节点下的Value } } } }}
C# Xml Linq XDocument 基本操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。