在ASP.NET中,可以使用System.Xml命名空间中的类来读取和写入XML文件。以下是一个完整的示例,展示如何读取和写入XML文件。
1. 创建XML文件
假设我们有一个名为Users.xml的XML文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<Users>
<User>
<ID>1</ID>
<Name>姓名</Name>
<Email>Email</Email>
</User>
<User>
<ID>2</ID>
<Name>姓名</Name>
<Email>Email</Email>
</User>
</Users>
2. 读取XML文件
使用XmlDocument或XDocument类读取XML文件。
使用 XmlDocument 读取XML
using System;
using System.Web;
using System.Xml;
public class XmlHelper
{
// 读取XML文件
public void ReadXmlFile(string filePath)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filePath);
// 获取根节点
XmlNode root = xmlDoc.DocumentElement;
// 遍历子节点
foreach (XmlNode node in root.ChildNodes)
{
string id = node["ID"].InnerText;
string name = node["Name"].InnerText;
string email = node["Email"].InnerText;
Console.WriteLine($"ID: {id}, Name: {name}, Email: {email}");
}
}
}
在ASP.NET页面中使用
HTML部分 (Default.aspx):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>读取XML文件</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnReadXml" runat="server" Text="读取XML文件" OnClick="btnReadXml_Click" />
<br />
<asp:Label ID="lblResult" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
代码部分 (Default.aspx.cs):
using System;
using System.IO;
using System.Text;
using System.Web;
namespace WebApplication1
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnReadXml_Click(object sender, EventArgs e)
{
string filePath = HttpContext.Current.Server.MapPath("~/Users.xml");
XmlHelper xmlHelper = new XmlHelper();
StringBuilder result = new StringBuilder();
using (StringWriter sw = new StringWriter(result))
{
Console.SetOut(sw); // 重定向控制台输出到StringBuilder
xmlHelper.ReadXmlFile(filePath);
}
lblResult.Text = result.ToString().Replace(Environment.NewLine, "<br />");
}
}
}
3. 写入XML文件
使用XmlDocument或XDocument类写入XML文件。
使用 XmlDocument 写入XML
using System;
using System.Xml;
public class XmlHelper
{
// 写入XML文件
public void WriteXmlFile(string filePath)
{
XmlDocument xmlDoc = new XmlDocument();
// 创建根节点
XmlElement root = xmlDoc.CreateElement("Users");
xmlDoc.AppendChild(root);
// 创建子节点
XmlElement user = xmlDoc.CreateElement("User");
root.AppendChild(user);
XmlElement id = xmlDoc.CreateElement("ID");
id.InnerText = "3";
user.AppendChild(id);
XmlElement name = xmlDoc.CreateElement("Name");
name.InnerText = "Alice Johnson";
user.AppendChild(name);
XmlElement email = xmlDoc.CreateElement("Email");
email.InnerText = "alice@example.com";
user.AppendChild(email);
// 保存XML文件
xmlDoc.Save(filePath);
}
}
在ASP.NET页面中使用
HTML部分 (Default.aspx):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>写入XML文件</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnWriteXml" runat="server" Text="写入XML文件" OnClick="btnWriteXml_Click" />
<br />
<asp:Label ID="lblResult" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
代码部分 (Default.aspx.cs):
using System;
using System.IO;
using System.Web;
namespace WebApplication1
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnWriteXml_Click(object sender, EventArgs e)
{
string filePath = HttpContext.Current.Server.MapPath("~/Users.xml");
XmlHelper xmlHelper = new XmlHelper();
xmlHelper.WriteXmlFile(filePath);
lblResult.Text = "XML文件已写入。";
}
}
}
4. 使用 XDocument 读取和写入XML
XDocument是LINQ to XML的一部分,提供了更简洁的API来操作XML。
使用 XDocument 读取XML
using System;
using System.Linq;
using System.Xml.Linq;
public class XmlHelper
{
// 读取XML文件
public void ReadXmlFile(string filePath)
{
XDocument xDoc = XDocument.Load(filePath);
var users = from user in xDoc.Descendants("User")
select new
{
ID = user.Element("ID").Value,
Name = user.Element("Name").Value,
Email = user.Element("Email").Value
};
foreach (var user in users)
{
Console.WriteLine($"ID: {user.ID}, Name: {user.Name}, Email: {user.Email}");
}
}
}
使用 XDocument 写入XML
using System;
using System.Xml.Linq;
public class XmlHelper
{
// 写入XML文件
public void WriteXmlFile(string filePath)
{
XDocument xDoc = new XDocument(
new XElement("Users",
new XElement("User",
new XElement("ID", "3"),
new XElement("Name", "Alice Johnson"),
new XElement("Email", "alice@example.com")
)
)
);
xDoc.Save(filePath);
}
}
5. 运行示例
-
将
Users.xml文件放置在项目的根目录下。 -
运行项目并访问
Default.aspx页面。 -
点击“读取XML文件”按钮,显示XML文件内容。
-
点击“写入XML文件”按钮,将新数据写入XML文件。
765

被折叠的 条评论
为什么被折叠?



