It is known that there is an XML file (bookstore. xml) as follows:
<? Xml version = "1.0" encoding = "gb2312"?>
<Bookstore>
<Book genre = "fantasy" ISBN = "2-3631-4">
<Title> Oberon's Legacy </title>
<Author> Corets, Eva </author>
<Price> 5.95 </price>
</Book>
</Bookstore>
1. Insert a <book> node to the <bookstore> node:
XmlDocument xmlDoc = new XmlDocument ();
XmlDoc. Load ("bookstore. xml ");
XmlNode root = xmlDoc. SelectSingleNode ("bookstore"); // query <bookstore>
XmlElement xe1 = xmlDoc. CreateElement ("book"); // create a <book> node
Xe1.SetAttribute ("genre", "lizan red"); // you can specify the genre attribute of the node.
Xe1.SetAttribute ("ISBN", "2-3631-4"); // you can specify the ISBN attribute of the node.
XmlElement xesub1 = xmlDoc. CreateElement ("title ");
Xesub1.InnerText = "CS from entry to entry"; // set a text node
Xe1.AppendChild (xesub1); // Add it to the <book> node
XmlElement xesub2 = xmlDoc. CreateElement ("author ");
Xesub2.InnerText = "Hou Jie ";
Xe1.AppendChild (xesub2 );
XmlElement xesub3 = xmlDoc. CreateElement ("price ");
Xesub3.InnerText = "58.3 ";
Xe1.AppendChild (xesub3 );
Root. AppendChild (xe1); // Add it to the <bookstore> node
XmlDoc. Save ("bookstore. xml ");
// ==========================
Result:
<? Xml version = "1.0" encoding = "gb2312"?>
<Bookstore>
<Book genre = "fantasy" ISBN = "2-3631-4">
<Title> Oberon's Legacy </title>
<Author> Corets, Eva </author>
<Price> 5.95 </price>
</Book>
<Book genre = "Li zanhong" ISBN = "2-3631-4">
<Title> CS from entry to entry </title>
<Author> Hou Jie </author>
<Price> 58.3 </price>
</Book>
</Bookstore>
2. Modify the node: Change the genre value of the node whose genre attribute value is "Li zenhong" to "update Li zenhong ", modify the text of the child node <author> of the node to "Yasheng ".
XmlNodeList nodeList = xmlDoc. SelectSingleNode ("bookstore"). ChildNodes; // obtain all the subnodes of the bookstore Node
Foreach (XmlNode xn in nodeList) // traverses all subnodes
{
XmlElement xe = (XmlElement) xn; // converts the subnode type to the XmlElement type
If (xe. GetAttribute ("genre") = "") // if the genre attribute value is ""
{
Xe. SetAttribute ("genre", "update lizan red"); // you can change this attribute to "update lizan red"
XmlNodeList nls = xe. ChildNodes; // continue to obtain all the child nodes of the xe subnode
Foreach (XmlNode xn1 in nls) // traverse
{
XmlElement xe2 = (XmlElement) xn1; // Conversion Type
If (xe2.Name = "author") // if you find
{
Xe2.InnerText = "Yasheng"; // modify
Break; // find and exit.
}
}
Break;
}
}
XmlDoc. Save ("bookstore. xml"); // Save.
// ==============================
The final result is:
<? Xml version = "1.0" encoding = "gb2312"?>
<Bookstore>
<Book genre = "fantasy" ISBN = "2-3631-4">
<Title> Oberon's Legacy </title>
<Author> Corets, Eva </author>
<Price> 5.95 </price>
</Book>
<Book genre = "update Li zanhong" ISBN = "2-3631-4">
<Title> CS from entry to entry </title>
<Author> Yasheng </author>
<Price> 58.3 </price>
</Book>
</Bookstore>
3. Delete the genre attribute of the <book genre = "fantasy" ISBN = "2-3631-4"> node, delete the <book genre = "update lizan red" ISBN = "2-3631-4"> node.
XmlNodeList xnl = xmlDoc. SelectSingleNode ("bookstore"). ChildNodes;
Foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement) xn;
If (xe. GetAttribute ("genre") = "fantasy ")
{
Xe. RemoveAttribute ("genre"); // Delete genre attributes
}
Else if (xe. GetAttribute ("genre") = "update lizanhong ")
{
Xe. RemoveAll (); // delete all content of the node
}
}
XmlDoc. Save ("bookstore. xml ");
// ==================================
The final result is:
<? Xml version = "1.0" encoding = "gb2312"?>
<Bookstore>
<Book ISBN = "2-3631-4">
<Title> Oberon's Legacy </title>
<Author> Corets, Eva </author>
<Price> 5.95 </price>
</Book>
<Book>
</Book>
</Bookstore>
4. display all data.
XmlNode xn = xmlDoc. SelectSingleNode ("bookstore ");
XmlNodeList xnl = xn. ChildNodes;
Foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement) xnf;
Console. WriteLine (xe. GetAttribute ("genre"); // display attribute values
Console. WriteLine (xe. GetAttribute ("ISBN "));
XmlNodeList xnf1 = xe. ChildNodes;
Foreach (XmlNode xn2 in xnf1)
{
Console. WriteLine (xn2.InnerText); // displays the child node text.
}
}
By niemeiquan