XML与HTML区别
HTML:是显示页面,html的标签是规定好的,不区分大小写
XML:是存储数据,xml的标签是自定义的,并且区分大小写。xml必须有根节点,且只有一个。
<?xml version="1.0" encoding="utf-8" ?>
是XML的文件头,说明了xml文件的版本和编译方式
<Books>...</Books>
是XML的根节点,且不能有其他同级的节点
XML元素:是xml文件的所有内容
XML节点:是xml的标签
写入操作XML的方法
- 创建XML文档对象:
XmlDocument xdoc = new XmlDocument();
- 创建xml的文件头信息:
XmlDeclaration xdec = xdoc.CreateXmlDeclaration("1.0", "utf-8", null);
(版本号,编码方式) - 添加子节点:
父节点对象.AppendChild(子节点对象);
xdoc.AppendChild(xdec);
- 为节点添加文本:
节点对象.InnerText = "文本内容";
name1.InnerText = "《西游记》";
- 为节点添加属性:
节点对象.SetAtrribute("属性名","属性值");
name1.SetAtrribute("writer","吴承恩");
- 为节点添加标签(和文本的区别在于,不会把标签变成转义符):
节点对象.InnerXml = "标签内容";
name1.InnerXml = "<p>西游记</p>";
- 加载xml文件(获取文件元素的前提):
xdoc.Load("xml文件路径");
- 获取xml文件的根节点(获取根节点后可以追加子节点):
XmlElemet books = xdoc.DocumentElement;
读取操作XML的方法
- 创建XML文档对象:
XmlDocument xdoc = new XmlDocument();
- 加载要读取的XML文件:
xdoc.Load("xml文件路径");
- 获取根节点:
XmlElemet books = xdoc.DocumentElement;
- 获取子节点(返回子节点的集合):
XmlNodeList xnl = books.ChildNodes;
- 选择某个节点,获取它的子节点(返回子节点的集合):
XmlNodeList xnl = doc.SelectNodes("/Books/book");
删除XML节点
- 创建XML文档对象:
XmlDocument xdoc = new XmlDocument();
- 加载要读取的XML文件:
xdoc.Load("xml文件路径");
- 选择单个节点:
XmlNode xn = xdoc.SelectSingleNode("/Books/book");
- 删除节点:
xn.RemoveAll();
C# 创建XML文件
static void Main(string[] args)
{
//通过代码创建XML文件
// 1.引用命名空间
// 2.创建XML文档对象
XmlDocument xdoc = new XmlDocument();
// 3.创建xml的文件头信息,并添加到xml文档中
XmlDeclaration xdec = xdoc.CreateXmlDeclaration("1.0", "utf-8", null);
xdoc.AppendChild(xdec);
// 4.创建根节点对象
XmlElement books = xdoc.CreateElement("Books");
//将根节点添加到文档中
xdoc.AppendChild(books);
// 5.为根节点Books创建子节点对象
XmlElement book1 = xdoc.CreateElement("Book");
//将book1添加到books根节点
books.AppendChild(book1);
// 6.为子节点Book创建子节点对象
XmlElement name1 = xdoc.CreateElement("name");
//为name1节点添加文本
name1.InnerText = "《西游记》";
//将name1节点添加到book1节点
book1.AppendChild(name1);
XmlElement price1 = xdoc.CreateElement("price");
price1.InnerText = "120元";
book1.AppendChild(price1);
XmlElement press1 = xdoc.CreateElement("press");
press1.InnerText = "清华出版社";
book1.AppendChild(press1);
// 7.为根节点Books创建第二个子节点
XmlElement book2 = xdoc.CreateElement("Book");
books.AppendChild(book2);
XmlElement name2 = xdoc.CreateElement("name");
name2.InnerText = "《水浒传》";
book2.AppendChild(name2);
XmlElement price2 = xdoc.CreateElement("price");
price2.InnerText = "88元";
book2.AppendChild(price2);
XmlElement press2 = xdoc.CreateElement("press");
press2.InnerText = "北大出版社";
book2.AppendChild(press2);
//保存XML文件
xdoc.Save(@"C:\Users\shen\Desktop\Books.xml");
Console.WriteLine("保存成功!");
}
Books.xml
C# 读取XML文件
Books.xml
static void Main(string[] args)
{
//创建xml文档对象
XmlDocument xdoc = new XmlDocument();
//加载要读取的xml文件
xdoc.Load(@"C:\Users\shen\Desktop\Books.xml");
//选择指定节点,获取子节点,返回一个子节点集合
XmlNodeList xnl = xdoc.SelectNodes("/Books/Book/name");
//循环遍历节点内容
foreach (XmlNode xn in xnl)
{
Console.WriteLine(xn.InnerText);
Console.WriteLine(xn.Attributes["writer"].Value);
}
}