C#操作XML通用方法汇总
1. 简介
XML是一种可扩展标记语言,是用于XML文档中表示数据的通用信息交换格式。在C#应用程序中,操作XML常用于数据的存储和读取,而且C#提供了丰富的API支持XML的解析、创建、修改和转换等操作。
本文章主要介绍了基本的C#操作XML的方法和技巧。
2. XML的创建
2.1 创建XML文档
using System.Xml;
XmlDocument xmldoc = new XmlDocument();
XmlElement root = xmldoc.CreateElement("root");
xmldoc.AppendChild(root);
2.2 添加元素
XmlElement node = xmldoc.CreateElement("node");
node.InnerText = "Hello World!";
root.AppendChild(node);
2.3 添加属性
XmlAttribute attr = xmldoc.CreateAttribute("attr1");
attr.Value = "value1";
node.SetAttributeNode(attr);
2.4 保存XML文件
xmldoc.Save("test.xml");
3. XML的读取
3.1 加载XML文件
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("test.xml");
XmlElement root = xmldoc.DocumentElement;
3.2 获取元素内容
XmlNodeList nodelist = root.GetElementsByTagName("node");
foreach(XmlNode node in nodelist)
{
string text = node.InnerText;
}
3.3 获取元素属性
foreach(XmlElement node in root.ChildNodes)
{
string value = node.GetAttribute("attr1");
}
4. XML的修改
4.1 修改元素内容
foreach(XmlNode node in nodelist)
{
node.InnerText = "Modified";
}
xmldoc.Save("test.xml");
4.2 修改元素属性
foreach(XmlElement node in root.ChildNodes)
{
node.SetAttribute("attr1", "Modified");
}
xmldoc.Save("test.xml");
5. XML的删除
5.1 删除元素
foreach(XmlNode node in nodelist)
{
root.RemoveChild(node);
}
xmldoc.Save("test.xml");
5.2 删除属性
foreach(XmlElement node in root.ChildNodes)
{
node.RemoveAttribute("attr1");
}
xmldoc.Save("test.xml");
6. 示例说明
6.1 将DataTable转换为XML文件
public static void DataTableToXml(DataTable dt, string filename)
{
XmlDocument xmldoc = new XmlDocument();
XmlElement root = xmldoc.CreateElement("Table");
xmldoc.AppendChild(root);
foreach(DataRow row in dt.Rows)
{
XmlElement noderow = xmldoc.CreateElement("Row");
foreach(DataColumn column in dt.Columns)
{
XmlElement nodecolumn = xmldoc.CreateElement(column.ColumnName);
nodecolumn.InnerText = row[column].ToString();
noderow.AppendChild(nodecolumn);
}
root.AppendChild(noderow);
}
xmldoc.Save(filename);
}
6.2 根据XPath查询XML元素
XmlDocument xmldoc = new XmlDocuemnt();
xmldoc.Load("test.xml");
XmlNode node = xmldoc.SelectSingleNode("/root/node");
string text = node.InnerText;
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作XML通用方法汇总 - Python技术站