1. 创建xml
usingSystem.Xml;
voidsetXml(string file)
{
XmlTextWriter writer = newXmlTextWriter(file,System.Text.Encoding.UTF8);
writer.WriteStartDocument();
//根节点
writer.WriteStartElement("root");
writer.WriteAttributeString("xmlns", "x",null, "urn:1");//指定的前缀、本地名称、命名空间 URI 和值的属性
//一级节点
writer.WriteStartElement("aaa","urn:1");//指定的开始标记并将其与给定的命名空间关联起来
//二级节点
writer.WriteStartElement("a1");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
writer.Close();
}
<?xmlversion="1.0" encoding="utf-8"?>
<rootxmlns:x="urn:1">
<x:aaa>
<a1 /></x:aaa>
<x:bbb />
</root>
2. 添加节点
XmlDocumentxmlDoc = new XmlDocument();
xmlDoc.Load(mapPath);
XmlNode root =xmlDoc.SelectSingleNode("Categories");//找到根节点
XmlNodeListxnl = xmlDoc.SelectSingleNode("Categories").ChildNodes;//找到一级节点
private stringmapPath;
//创建节点
XmlElement xe1= xmlDoc.CreateElement("Category");
xe1.SetAttribute("id","2");
XmlElementxesub1 = xmlDoc.CreateElement("CategoryId");
xesub1.InnerText= "2";
//添加子节点
xe1.AppendChild(xesub1);
root.AppendChild(xe1);
//保存
xmlDoc.Save(mapPath);
<?xmlversion="1.0" encoding="utf-8"?>
<Categories>
<Category id="1">
<CategoryId>1</CategoryId>
</Category>
<Category id="2">
<CategoryId>2</CategoryId>
</Category>
</Categories>
3. 删除节点
XmlDocumentxmlDoc = new XmlDocument();
xmlDoc.Load(mapPath);
XmlNode root =xmlDoc.SelectSingleNode("Categories");//找到根节点
XmlNodeListxnl = root.ChildNodes;//找到一级节点
private stringmapPath;
foreach(XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if ( xe.GetAttribute("id") == “” ) { xe.RemoveAll(); }
}
xmlDoc.Save(mapPath);
4. 查询节点
XmlDocumentxmlDoc = new XmlDocument();
xmlDoc.Load(mapPath);
XmlNode root =xmlDoc.SelectSingleNode("Categories");//找到根节点
XmlNodeListxnl = root.ChildNodes;//找到一级节点
private stringmapPath;
foreach(XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
XmlNodeList xnf1 = xe.ChildNodes;
foreach (XmlNode xn2 in xnf1)
{
XmlElement xe5 = (XmlElement)xn2;
Response.Write(xe5.Name +":" + xe5.InnerText + "\n");
}
}
5. 修改节点
XmlDocumentxmlDoc = new XmlDocument();
xmlDoc.Load(mapPath);
XmlNode root =xmlDoc.SelectSingleNode("Categories");//找到根节点
XmlNodeListxnl = root.ChildNodes;//找到一级节点
private stringmapPath;
foreach(XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("id") == “”)
{
XmlNodeList nls = xe.ChildNodes;
foreach (XmlNode xl in nls)
{
XmlElement xel = (XmlElement)xl;
if (xel.Name == "Name")
xel.InnerText = “”;
}
}
}
xmlDoc.Save(mapPath);