XmlDocument是一个DOM类型,它代表了一个XML文档,实用XmlDocument类型,可以对一个XML文档进行所有期望的操作。
XML文档对象模型(DOM)类是XML文档的内存中表示形式。DOM使能够以编程方式读取、处理和修改XML文档。.NET的文档对象模型,是由XMLNode类型及其派生类型来实现的,所有这些类型一起,覆盖了DOM中所有的元素类型。
DOM的层次结构:
①使用XmlDocument创建一个XML文件:
//创建XMLDocument
string path = "BookStore.xml";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
XmlNode root = xmlDoc.SelectSingleNode("bookstore"); //查找bookstore
XmlElement xel = xmlDoc.CreateElement("book"); //创建一个<book>结点
xel.SetAttribute("genre", "勒华"); //设置该结点属性
xel.SetAttribute("ISBN", "2-3931-4");
XmlElement xesub1 = xmlDoc.CreateElement("Title"); //设置文本结点
xesub1.InnerText = "C#从入门到精通";
xel.AppendChild(xesub1); //添加到<book>结点
XmlElement xesub2 = xmlDoc.CreateElement("author");
xesub2.InnerText = "风月";
xel.AppendChild(xesub2);
XmlElement xesub3 = xmlDoc.CreateElement("price");
xesub3.InnerText = "66";
xel.AppendChild(xesub3);
root.AppendChild(xel); //添加到<bookstore>
xmlDoc.Save(path); //将增加的内容保存回xml文件
结果:
<?xml version="1.0" encoding="UTF-8" ?>
<bookstore>
<book genre="勒华" ISBN="2-3931-4">
<Title>C#从入门到精通</Title>
<author>风月</author>
<price>66</price>
</book>
</bookstore>
②实用XmlDocument删除结点:
string path = "bookstore.xml";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
//获取bookstore结点所有子结点
XmlNodeList xnl = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach (XmlNode item in xnl)
{
XmlElement xe = (XmlElement)item;
if (xe.GetAttribute("genre")=="fantasy")
{
xe.RemoveAttribute("genre"); //删除genre属性
}
else if(xe.GetAttribute("genre")=="勒华")
{
xe.RemoveAll(); //删除该结点的全部内容
}
}
xmlDoc.Save(path);
结果:
<?xml version="1.0" encoding="UTF-8" ?>
<bookstore>
<book />
</bookstore>