引用命名空间:using System.Xml
1.检查所要操作的xml文件是否存在:
System.IO.File.Exists(文件路径及名称);
2.得到xml文件:
(1)在asp.net中可以这样得到:
XmlDocument xmlDoc = new XmlDocument();
//导入xml文档
xmlDoc.Load( Server.MapPath("xmlTesting.xml"));
//导入字符串
//xmlDoc.LoadXml("<bookStore> <book id="01" price="3.5元"> 读者</book></bookStore>");
注:Server.MapPath("xmlTesting.xml")此时的xmlTesting.xml文件必须是在当前的解决方案里;同样可以写成完整的物理路径xmlDoc.Load (@"E:"软件学习"测试"myNoteWeb"xmlTesting.xml")
(2)在windForm中 直接用物理路径得到所要操作的xml文件具体实现方法同上
3.创建xml文件:
XmlDocument xmlDoc = new XmlDocument(); //创建xml文档(实例化一个xml)
XmlNode root = xmlDoc.CreateElement("bookStore");//创建根节点
//创建第1个子结点:
XmlNode bookNode = xmlDoc.CreateElement("book");
bookNode.InnerText = "读者";
//为此节点添加属性
法1:
bookPublishNode.SetAttribute("id", "01")
root.AppendChild(bookNode);
法2:
XmlAttribute xmlattribute = tempXmlDoc.CreateAttribute("price");
xmlattribute.Value = "3.5元";
tempRoot .Attributes .Append (xmlattribute )
//创建第2个根节点的子结点:
XmlNode tempBookNode = xmlDoc.CreateElement("tempbook ");
tempBookNode.InnerText ="文摘";
root.AppendChild(tempBookNode);
xmlDoc.AppendChild(root); //将根节点添加到xml文档中
try
{
xmlDoc.save(“bookInfo.xml”);//xml将保存到当前解决方案的目录下
}
catch (Exception ex)
{
MessageBox.Show(ex.Message); //显示错误信息
}
得到的xml文档如下:
<?xml version="1.0" encoding="utf-8" ?>
<bookStore>
<book id ="01" price="3.5元">
读者
</book>
<tempbook id ="02">
文摘
</tempbook >
</bookStore>
4.读取,修改xml信息
tempTesting.xml文件的内容如下:
?<?xml version="1.0" encoding="utf-8"?>
<bookStore>
<book id="01" price="3.5元">
读者
</book>
<book id="02" price="5元">
<bookname>百家讲坛</bookname>
<bookpublish>文学出版社</bookpublish>
</book>
<tempbook id="0000">漫画tempbook>
</bookStore>
(1) 得到xml文件的xml信息
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load( Server.MapPath("xmlTesting.xml"));
XmlNode root=xmlDoc.DocumentElement;
(2) 得到节点
//得到id为2book节点下的所有节点
XmlNodeList xmlNodes = root.SelectNodes("//book[@id='02']//*");
XmlNode tempNode = xmlNodes[0];//得到第一个节点
//将tempbook强制转化为XmlElement
XmlElement xmlelement = (XmlElement)root.SelectSingleNode("tempbook");
(3) 修改节点内容
XmlNode tempBook = root.SelectSingleNode("tempbook");//修改节点内容
tempBook. InnerText="漫画";
(4)得到节点的属性值并修改:
//得到节点的属性
//法1
XmlAttributeCollection attrbute= tempBook.Attributes;
string bookID = attrbute[0].Value;
//法2:
string bookid = tempBook.Attributes[0].Value.ToString();
//修改节点属性的值
tempBook.Attributes[0].Value = "0000";
(5)添加一个根节点