本篇文章主要介绍了C# 创建,读取,写入XML文件的方法,具有很好的参考价值。下面跟着小编一起来看下吧
Xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<Advertisements>
<Ad>
<ImageUrl>001.jpglt;/ImageUrl>
<NavigateUrl>001.aspx</NavigateUrl>
<Impressions>10</Impressions>
<Keyword>gucas01</Keyword>
</Ad>
<Ad>
<ImageUrl>002.jpglt;/ImageUrl>
<NavigateUrl>002.aspx</NavigateUrl>
<Impressions>20</Impressions>
<Keyword>gucas02</Keyword>
</Ad>
<Ad>
<ImageUrl>003.jpglt;/ImageUrl>
<NavigateUrl>003.aspx</NavigateUrl>
<Impressions>30</Impressions>
<Keyword>gucas03</Keyword>
</Ad>
<Ad>
<ImageUrl>004.jpglt;/ImageUrl>
<NavigateUrl>004.aspx</NavigateUrl>
<Impressions>40</Impressions>
<Keyword>gucas04</Keyword>
</Ad>
<Ad>
<ImageUrl>005.jpglt;/ImageUrl>
<NavigateUrl>005.aspx</NavigateUrl>
<Impressions>50</Impressions>
<Keyword>gucas05</Keyword>
</Ad>
<Ad>
<ImageUrl>google.giflt;/ImageUrl>
<NavigateUrl>http://www.google.com</NavigateUrl>
<Impressions>30</Impressions>
<Keyword>google</Keyword>
</Ad>
</Advertisements>
对XML文件的操作
/// <summary>
/// 创建XML文件
/// </summary>
/// <param name="filename"></param>
public void CreateXmlFile(string filename)
{
XmlDocument xmldoc = new XmlDocument();
XmlNode node;
node = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(node);
XmlNode root = xmldoc.CreateElement("Users");
xmldoc.AppendChild(root);
CreateNode(xmldoc, root, "UserName", "zhengyd");
CreateNode(xmldoc, root, "Email", "zhengyd@gucas.ac,cn");
CreateNode(xmldoc, root, "Url", "www.gucas.an,cn");
CreateNode(xmldoc, root, "Age", "27");
try
{
xmldoc.Save(Server.MapPath(filename));
Response.Write("创建XML文件myxml.xml成功!");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
/// <summary>
/// 写入XML文件
/// </summary>
/// <param name="file"></param>
public void WriteXmlFile(string file)
{
XmlDocument xmdoc = new XmlDocument();
try
{
xmdoc.Load(Server.MapPath(file));
XmlNode root = xmdoc.SelectSingleNode("Advertisements");
if (root != null)
{
XmlNode node = xmdoc.CreateNode(XmlNodeType.Element, "Ad", null);
CreateNode(xmdoc, node, "ImageUrl", "google.gif");
CreateNode(xmdoc, node, "NavigateUrl", "http://www.google.com");
CreateNode(xmdoc, node, "Impressions", "30");
CreateNode(xmdoc, node, "Keyword", "google");
root.AppendChild(node);
}
xmdoc.Save(Server.MapPath(file));
Response.Write("写入XML文件XMLFile.xml成功。<br>");
}
catch(Exception ex) {
Response.Write(ex.Message);
}
}
/// <summary>
/// 创建节点
/// </summary>
/// <param name="xmldoc"></param>
/// <param name="parentnode"></param>
/// <param name="name"></param>
/// <param name="value"></param>
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);
}
/// <summary>
/// 读取XML文件
/// </summary>
/// <param name="file"></param>
private void ReadFile(string file)
{
XmlDocument xmldoc = new XmlDocument();
try
{
xmldoc.Load(Server.MapPath(file));
XmlNode node = xmldoc.SelectSingleNode("Advertisements");
if (node != null)
{
TreeNode root = new TreeNode();
root.Text = node.Name;
tvXml.Nodes.Add(root);
foreach (XmlNode xnode in xmldoc.SelectNodes("Advertisements/Ad"))
{
TreeNode tnode = new TreeNode();
tnode.Text = Server.HtmlEncode("<" + xnode.Name + ">");
root.ChildNodes.Add(tnode);
foreach (XmlNode xcnode in xnode.ChildNodes)
{
TreeNode tcnode = new TreeNode();
tcnode.Text = Server.HtmlEncode("<" + xcnode.Name + ">" + xcnode.InnerText + "</" + xcnode.Name + ">");
tnode.ChildNodes.Add(tcnode);
}
TreeNode ttnode = new TreeNode();
ttnode.Text = Server.HtmlEncode("</" + xnode.Name + "");
root.ChildNodes.Add(ttnode);
}
TreeNode tpnode = new TreeNode();
tpnode.Text = Server.HtmlEncode("</" + node.Name + ">");
tvXml.Nodes.Add(tpnode);
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程学习网!
沃梦达教程
本文标题为:C# 创建,读取,写入XML文件
猜你喜欢
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- 如何使用C# 捕获进程输出 2023-03-10
- Oracle中for循环的使用方法 2023-07-04
- c# 模拟线性回归的示例 2023-03-14
- user32.dll 函数说明小结 2022-12-26
- Unity Shader实现模糊效果 2023-04-27
- .NET CORE DI 依赖注入 2023-09-27
- WPF使用DrawingContext实现绘制刻度条 2023-07-04
- Unity3D实现渐变颜色效果 2023-01-16
- 在C# 8中如何使用默认接口方法详解 2023-03-29