Известно, что существует XML-файл (bookstore.xml) следующего вида:
<?xml version="1.0"coding="gb2312"?>
<книжный магазин>
<книга жанр="фэнтези" ISBN="2-3631-4">
<title>Наследие Оберона</title>
<author>Корец, Ева</author>
<price>5,95</price>
</книга>
</bookstore>
1. Вставьте узел <book> в узел <bookstore>:
XmlDocument xmlDoc=новый XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root=xmlDoc.SelectSingleNode("bookstore");//Найти <книжный магазин>
XmlElement xe1=xmlDoc.CreateElement("book");//Создаем узел <book>
xe1.SetAttribute("genre","Li Zanhong");//Установить атрибут жанра узла
xe1.SetAttribute("ISBN","2-3631-4");//Установить атрибут ISBN узла
XmlElement xesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="CS от новичка до опытного";//Установить текстовые узлы
xe1.AppendChild(xesub1);//Добавить в узел <book>
XmlElement xesub2=xmlDoc.CreateElement("автор");
xesub2.InnerText="houjie";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmlDoc.CreateElement("цена");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//Добавить в узел <bookstore>
xmlDoc.Save("bookstore.xml");
//==============================================
Результат:
<?xml version="1.0"coding="gb2312"?>
<книжный магазин>
<книга жанр="фэнтези" ISBN="2-3631-4">
<title>Наследие Оберона</title>
<author>Корец, Ева</author>
<price>5,95</price>
</книга>
<book жанр="李zanhong" ISBN="2-3631-4">
<title>CS от записи до мастера</title>
<author>Ходжи</author>
<price>58,3</price>
</книга>
</bookstore>
2. Измените узел: измените значение жанра узла, значение атрибута жанра которого равно «Ли Цзаньхун», на «обновить Ли Цзаньхун», а также измените текст дочернего узла <author> этого узла на «Я». Шэн».
XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//Получить все дочерние узлы узла книжного магазина
foreach(XmlNode xn in nodeList)//Обходим все дочерние узлы
{
XmlElement xe=(XmlElement)xn;//Преобразуем тип подузла в тип XmlElement
if(xe.GetAttribute("genre")=="Ли Цзаньхун")//Если значение атрибута жанра - "Ли Цзаньхун"
{
xe.SetAttribute("genre","update Li Zanhong");//Измените этот атрибут на "обновить Li Zanhong"
XmlNodeList nls=xe.ChildNodes;//Продолжайте получать все дочерние узлы дочернего узла xe
foreach(XmlNode xn1 в nls)//Обход
{
XmlElement xe2=(XmlElement)xn1;//Тип преобразования
if(xe2.Name=="автор")//Если найден
{
xe2.InnerText="Яшенг";//Изменить
перерыв; //Просто найдите его и выйдите.
}
}
перерыв;
}
}
xmlDoc.Save("bookstore.xml");//Сохранить.
//============================================== ==
Конечный результат:
<?xml version="1.0"coding="gb2312"?>
<книжный магазин>
<книга жанр="фэнтези" ISBN="2-3631-4">
<title>Наследие Оберона</title>
<author>Корец, Ева</author>
<price>5,95</price>
</книга>
<book жанр="обновление李zanhong" ISBN="2-3631-4">
<title>CS от записи до мастера</title>
<author>Нападение</author>
<price>58,3</price>
</книга>
</bookstore>
3. Удалите атрибут жанра узла <book жанр="fantasy" ISBN="2-3631-4"> и удалите <book жанр="update Li Zanhong" ISBN="2-3631-4". "> узел.
XmlNodeList xnl=xmlDoc.SelectSingleNode("книжный магазин").ChildNodes
(XmlNode xn в xnl)
;
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute("жанр")=="фэнтези")
{
xe.RemoveAttribute("genre");//Удалить атрибут жанра
}
else if(xe.GetAttribute("genre")=="updateLi Zanhong")
{
xe.RemoveAll();//Удалить все содержимое узла
}
}
xmlDoc.Save("bookstore.xml");
//==========================================
Конечный результат:
<?xml version="1.0"coding="gb2312"?>
<книжный магазин>
<книга ISBN="2-3631-4">
<title>Наследие Оберона</title>
<author>Корец, Ева</author>
<price>5,95</price>
</книга>
<книга>
</книга>
</bookstore>
4. Отобразите все данные.
XmlNode xn=xmlDoc.SelectSingleNode("книжный магазин"
xnl=xn.ChildNodes
(XmlNode xnf в xnl)
;
{
XmlElement xe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//Отображение значения атрибута
Console.WriteLine(xe.GetAttribute("ISBN"));
XmlNodeList xnf1=xe.ChildNodes;
Еогеасп (XmlNode xn2 в xnf1)
{
Console.WriteLine(xn2.InnerText);//Отображение текста дочернего узла
}
}