Для управления XML-файлами необходимо обратиться к пространству имен: System.Xml;
- Добавить информацию в файл Xml
Добавьте файл Student.xml, информация о файле выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<Students>
<Age>19</Age>
</Student>
<Age>20</Age>
</Student>
<Name>had</Name>
<Age>16</Age>
</Student>
</Students>
Код:
XmlDocument doc = new XmlDocument();
// Измените Student.xml в папке .exe, вам понадобится файл Student.xml в автономной программе, чтобы изменить его свойство «Копировать в выходной каталог» на «Копировать всегда»
//string exePath = Application.StartupPath+"\\Student.xml";
//doc.Load(exePath);
//Добавить информацию о студенте в файл Student.Xml в каталоге программы.
String exePath = Application.StartupPath;
int idx = exePath.LastIndexOf("bin");
exePath = exePath.Substring(0, idx) + "Student.xml";
doc.Load(exePath);
XmlNode node = doc.CreateNode(XmlNodeType.Element, "Student", "");
XmlAttribute attr = doc.CreateAttribute("class");
attr.Value = "Одна смена";
node.Attributes.Append(attr);
XmlNode name = doc.CreateNode(XmlNodeType.Element, "Name","");
name.InnerText = "had";
XmlNode gender = doc.CreateNode(XmlNodeType.Element, "Gender", "");
гендер.InnerText = "Женщина";
XmlNode age = doc.CreateNode(XmlNodeType.Element, "Age", "");
age.InnerText = "16";
node.AppendChild(name);
node.AppendChild(gender);
node.AppendChild(age);
doc["Students"].AppendChild(node);
doc.Save(exePath);
- Удалить данные в файле Xml
XmlDocument doc = new XmlDocument();
// Измените Student.xml в папке .exe, вам понадобится файл Student.xml в автономной программе, чтобы изменить его свойство «Копировать в выходной каталог» на «Копировать всегда»
//string exePath = Application.StartupPath+"\\Student.xml";
//doc.Load(exePath);
//Добавить информацию о студенте в файл Student.Xml в каталоге программы.
String exePath = Application.StartupPath;
int idx = exePath.LastIndexOf("bin");
exePath = exePath.Substring(0, idx) + "Student.xml";
doc.Load(exePath);
XmlNodeList list = doc["Students"].ChildNodes;
foreach (XmlNode node in list)
{
foreach (XmlNode nd in node.ChildNodes)
{
if (nd.InnerText == "had")
{
nd.ParentNode.ParentNode.RemoveChild(nd.ParentNode);
doc.Save(exePath);
return;
}
}
}
- Измените данные в xml:
XmlDocument doc = new XmlDocument();
// Измените Student.xml в папке .exe, вам понадобится файл Student.xml в автономной программе, чтобы изменить его свойство «Копировать в выходной каталог» на «Копировать всегда»
//string exePath = Application.StartupPath+"\\Student.xml";
//doc.Load(exePath);
//Добавить информацию о студенте в файл Student.Xml в каталоге программы.
String exePath = Application.StartupPath;
int idx = exePath.LastIndexOf("bin");
exePath = exePath.Substring(0, idx) + "Student.xml";
doc.Load(exePath);
XmlNodeList list = doc["Students"].ChildNodes;
for (int i = 0; i < list.Count; i++)
{
XmlNode node = list[i];
Если (узел["Имя"].InnerText == "Ли Си")
{
Узел["Пол"].InnerText = "Мужской";
}
foreach (XmlNode nd in node.ChildNodes)
{
Если (nd.InnerText == "Чжан Сан")
{
nd.ParentNode["Пол"].InnerText = "Женщина";
}
}
}
doc.Save(exePath);
- Прочитать все данные файла xml
XmlDocument doc = new XmlDocument();
// Измените Student.xml в папке .exe, вам понадобится файл Student.xml в автономной программе, чтобы изменить его свойство «Копировать в выходной каталог» на «Копировать всегда»
//string exePath = Application.StartupPath+"\\Student.xml";
//doc.Load(exePath);
//Добавить информацию о студенте в файл Student.Xml в каталоге программы.
String exePath = Application.StartupPath;
int idx = exePath.LastIndexOf("bin");
exePath = exePath.Substring(0, idx) + "Student.xml";
doc.Load(exePath);
XmlNodeList list = doc["Students"].ChildNodes;
foreach (XmlNode node in list)
{
String name = node["Name"].InnerText;
string gender = node["Gender"].InnerText;
string age = node["Age"].InnerText;
listBox1.Items.Add(name + "," + age + "," + gender);
}
- Создайте файл Xml и добавьте в него данные
private void button1_Click(object sender, EventArgs e)
{
CreateXmlFile();
}
public void CreateXmlFile()
{
String exePath = Application.StartupPath;
int idx = exePath.LastIndexOf("bin");
exePath = exePath.Substring(0, idx) + "aa.xml";
XmlDocument xmlDoc = new XmlDocument();
//Создаем узел объявления типа
XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");
xmlDoc.AppendChild(node);
//создаем корневой узел
XmlNode root = xmlDoc.CreateElement("User");
xmlDoc.AppendChild(root);
CreateNode(xmlDoc, root, "name", "xuwei");
CreateNode(xmlDoc, root, "sex", "male");
CreateNode(xmlDoc, root, "age", "25");
xmlDoc.Save(exePath);
}
/// <summary>
/// создаем узел
/// </summary>
/// XML-документ
/// родительский узел
/// имя узла
/// значение узла
///
public void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value)
{
XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null);
node.InnerText = value;
parentNode.AppendChild(node);
}