目录
一、XML遍历
前期准备:
1、DataSet -- XML遍历
代码编写:
internal class Program
{
static void Main(string[] args)
{
DataSet ds = new DataSet();
ds.ReadXml(@"C:\Users\Rush\Desktop\C#基础\XML\b.xml");
}
}
结果显示:
2、XElement-- XML遍历
代码编写:
internal class Program
{
static void Main(string[] args)
{
XDocument xDoc = XDocument.Load(@"C:\Users\Rush\Desktop\C#基础\XML\b.xml");
//遍历组
foreach (XElement group in xDoc.Root.Elements())
{
if (group.HasAttributes)
{
Console.WriteLine(group.Name + " " + group.Attribute("id").Value);
}
//遍历元素
foreach (XElement item in group.Elements())
{
Console.WriteLine(item.Name + " " + item.Value);
}
}
//获取CDATA数据
string resultString = Regex.Match(xDoc.Root.ToString(), @"(?<=<!\[CDATA\[)(\s|\S)*(?=]]>)").Value;
Console.WriteLine(resultString);
}
}
结果显示:
3、XmlReader-- XML遍历
代码编写:
internal class Program
{
static void Main(string[] args)
{
XDocument xDoc = XDocument.Load(@"C:\Users\Rush\Desktop\C#基础\XML\b.xml");
using (XmlReader dr = xDoc.Root.CreateReader())
{
while (dr.Read())
{
if (dr.HasAttributes)
{
Console.WriteLine(dr.GetAttribute(0));
}
if (dr.HasValue)
{
Console.WriteLine(dr.Value);
}
}
}
}
}
结果显示:
4、XmlTextReader-- XML遍历
代码编写:
internal class Program
{
static void Main(string[] args)
{
XmlTextReader reader = new XmlTextReader(@"C:\Users\Rush\Desktop\C#基础\XML\b.xml");
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine("<{0}>", reader.Name);
break;
case XmlNodeType.Text:
Console.WriteLine(reader.Value);
break;
case XmlNodeType.CDATA:
Console.WriteLine("<![CDATA[{0}]]>", reader.Value);
break;
case XmlNodeType.ProcessingInstruction:
Console.WriteLine("<?{0} {1}?>", reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
Console.WriteLine("<!--{0}-->", reader.Value);
break;
case XmlNodeType.XmlDeclaration:
Console.WriteLine("<?xml version='1.0'?>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType:
Console.WriteLine("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
break;
case XmlNodeType.EntityReference:
Console.WriteLine(reader.Name);
break;
case XmlNodeType.EndElement:
Console.WriteLine("</{0}>", reader.Name);
break;
}
}
}
}
结果显示:
二、XElement 增删改查
1、XElement -- 增
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XDocument xDoc = XDocument.Load(path);
//增
xDoc.Root.Add(new XElement("group", new XAttribute("id", "4"),
new XElement("name", "小冰"),
new XElement("age", "20")
)
);
xDoc.Save(path);
}
}
2、XElement -- 删
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XDocument xDoc = XDocument.Load(path);
//删
xDoc.Descendants("group")
.SingleOrDefault(x => x.Attribute("id")
.Value.Equals("4"))
.Remove();
xDoc.Save(path);
}
}
3、XElement -- 改
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XDocument xDoc = XDocument.Load(path);
//改 元素
xDoc.Descendants("group")
.SingleOrDefault( x => x.Attribute("id").Value.Equals("4") )
.SetElementValue("name", "小微");
//改 属性
xDoc.Descendants("group")
.SingleOrDefault( x => x.Attribute("id").Value.Equals("4") )
.SetAttributeValue("id", "9");
xDoc.Save(path);
}
}
4、XElement -- 查
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XDocument xDoc = XDocument.Load(path);
//查
string name = xDoc.Descendants("group")
.SingleOrDefault( x => x.Attribute("id").Value.Equals("2") )
.Element("name").Value;
Console.WriteLine(name);
}
}
5、完整代码
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XDocument xDoc = XDocument.Load(path);
//增
xDoc.Root.Add(new XElement("group", new XAttribute("id", "4"),
new XElement("name", "小冰"),
new XElement("age", "20")
)
);
//删
xDoc.Descendants("group")
.SingleOrDefault(x => x.Attribute("id").Value.Equals("4"))
.Remove();
//改 元素
xDoc.Descendants("group")
.SingleOrDefault(x => x.Attribute("id").Value.Equals("4"))
.SetElementValue("name", "小微");
//改 属性
xDoc.Descendants("group")
.SingleOrDefault(x => x.Attribute("id").Value.Equals("4"))
.SetAttributeValue("id", "9");
//查
string name = xDoc.Descendants("group")
.SingleOrDefault(x => x.Attribute("id").Value.Equals("2"))
.Element("name").Value;
Console.WriteLine(name);
xDoc.Save(path);
}
}
三、XmlElement增删改查
1、XmlElement -- 增
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(path);
//----------------增-------------------
XmlElement group = xDoc.CreateElement("group");
XmlAttribute id = xDoc.CreateAttribute("id");
id.Value = "13";
group.SetAttributeNode(id);
XmlElement name = xDoc.CreateElement("name");
name.InnerText = "小天";
group.AppendChild(name);
XmlElement age = xDoc.CreateElement("age");
age.InnerText = "23";
group.AppendChild(age);
xDoc.DocumentElement.AppendChild(group);
xDoc.Save(path);
}
}
2、XmlElement -- 删
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(path);
//----------------删----------------------
xDoc.SelectSingleNode("/root/group[@id=9]").RemoveAll();
xDoc.Save(path);
}
}
3、XmlElement -- 改
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(path);
//----------------改----------------------
xDoc.SelectSingleNode("/root/group[@id=9]/name").InnerText = "小幽";
xDoc.Save(path);
}
}
4、XmlElement -- 查
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(path);
//----------------查----------------------
string Name = xDoc.SelectSingleNode("/root/group[@id=9]/name").InnerText;
Console.WriteLine(Name);
}
}
5、完整代码
代码编写:
internal class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(path);
//----------------增-------------------
XmlElement group = xDoc.CreateElement("group");
XmlAttribute id = xDoc.CreateAttribute("id");
id.Value = "13";
group.SetAttributeNode(id);
XmlElement name = xDoc.CreateElement("name");
name.InnerText = "小天";
group.AppendChild(name);
XmlElement age = xDoc.CreateElement("age");
age.InnerText = "23";
group.AppendChild(age);
xDoc.DocumentElement.AppendChild(group);
//----------------删----------------------
xDoc.SelectSingleNode("/root/group[@id=9]").RemoveAll();
//----------------改----------------------
xDoc.SelectSingleNode("/root/group[@id=9]/name").InnerText = "小幽";
//----------------查----------------------
string Name = xDoc.SelectSingleNode("/root/group[@id=9]/name").InnerText;
Console.WriteLine(Name);
xDoc.Save(path);
}
}
如有错误,烦请批评指正