千家信息网

如何理解.net读写xml文档

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"如何理解.net读写xml文档"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 .N
千家信息网最后更新 2026年11月01日如何理解.net读写xml文档

本篇内容介绍了"如何理解.net读写xml文档"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一 .Net框架中与XML有关的命名空间

System.Xml
包含了一些和XML文档的读写操作相关的类,它们分别是:XmlReader、XmlTextReader、XmlValidatingReader、XmlNodeReader、XmlWriter、XmlTextWriter 以及 XmlNode(它的子类包括:XmlDocument、XmlDataDocument、XmlDocumentFragment)等类。

System.Xml.Schema
包含了和XML模式相关的类,这些类包括XmlSchema、XmlSchemaAll、XmlSchemaXPath以及XmlSchemaType等类。

System.Xml.Serialization
包含了和XML文档的序列化和反序列化操作相关的类。
序列化:将XML格式的数据转化为流格式的数据,并能在网络中传输;
反序列化:完成相反的操作,即将流格式的数据还原成XML格式的数据。

System.Xml.Xpath
包含了XPathDocument、XPathExression、XPathNavigator以及XPathNodeIterator等类,这些类能完成XML文档的导航功能。
(在XPathDocument类的协助下,XPathNavigator类能完成快速的XML文档导航功能,该类为程序员提供了许多Move方法以完成导航功能。)

System.Xml.Xsl
完成XSLT的转换功能。

二 写XML文档的方法

用XmlWriter类实现写操作,该类包含了写XML文档所需的方法和属性,它是XmlTextWriter类和XmlNodeWriter类的基类。

写操作的有些方法是成对出现的,比如你要写入一个元素,首先调用WriteStartElement方法->写入实际内容->调用WriteEndElement方法结束。

下面通过其子类 XmlTextWriter 来说明如何写XML文档。

XmlTextWriter textWriter = New XmlTextWriter("C:\\myXmFile.xml", null);

在创建完对象后,我们调用WriterStartDocument方法开始写XML文档;
在完成写工作后,就调用WriteEndDocument结束写过程,并调用Close方法将它关闭。

在写的过程中,我们可以:
调用WriteComment方法来添加说明;
通过调用WriteString方法来添加一个字符串;
通过调用WriteStartElement和WriteEndElement方法对来添加一个元素;
通过调用WriteStartAttribute和WriteEndAttribute方法对来添加一个属性;
通过调用WriteNode方法来添加整的一个节点;
其它的写的方法还包括WriteProcessingInstruction和WriteDocType等等。

下面的示例介绍如何具体运用这些方法来完成XML文档的写工作。

复制代码 代码如下:


using System;
using System.Xml;

namespace WriteXML
{
class Class1
{
static void Main( string[] args )
{
try
{
// 创建XmlTextWriter类的实例对象
XmlTextWriter textWriter = new XmlTextWriter("C:\\w3sky.xml", null);
textWriter.Formatting = Formatting.Indented;

// 开始写过程,调用WriteStartDocument方法
textWriter.WriteStartDocument();

// 写入说明
textWriter.WriteComment("First Comment XmlTextWriter Sample Example");
textWriter.WriteComment("w3sky.xml in root dir");

//创建一个节点
textWriter.WriteStartElement("Administrator");
textWriter.WriteElementString("Name", "formble");
textWriter.WriteElementString("site", "w3sky.com");
textWriter.WriteEndElement();

// 写文档结束,调用WriteEndDocument方法
textWriter.WriteEndDocument();

// 关闭textWriter
textWriter.Close();
}
catch(System.Exception e)
{
Console.WriteLine(e.ToString());
}
}

}
}

三 读XML文档的方法

用XmlTextReader类的对象来读取该XML文档。在创建新对象的构造函数中指明XML文件的位置即可。

XmlTextReader textReader = new XmlTextReader("C:\\books.xml");

XmlTextReader 类中的属性 NodeType 可以知道其节点的节点类型。通过与枚举类型 XmlNodeType 中的元素的比较,可以获取相应节点的节点类型并对其完成相关的操作。

枚举类型 XmlNodeType 中包含了诸如XmlDeclaration、Attribute、CDATA、Element、Comment、Document、DocumentType、Entity、ProcessInstruction以及WhiteSpace等XML项的类型。

下面的示例是以读取"books.xml"文件创建对象,通过该xml对象的Name、BaseURI、Depth、LineNumber等属性来获取相关信息,并显示在控制台中。(运用VS.net开发工具附带的"books.xml"文件来作为示例)

复制代码 代码如下:


using System;
using System.Xml;

namespace ReadXml
{
class Class1
{
static void Main( string[] args )
{
// 创建一个XmlTextReader类的对象并调用Read方法来读取XML文件
XmlTextReader textReader = new XmlTextReader("C:\\books.xml");
textReader.Read();
// 节点非空则执行循环体
while ( textReader.Read() )
{
// 读取第一个元素
textReader.MoveToElement();
Console.WriteLine("XmlTextReader Properties Test");
Console.WriteLine("===================");

// 读取该元素的属性并显示在控制台中
Console.WriteLine("Name:" + textReader.Name);
Console.WriteLine("Base URI:" + textReader.BaseURI);
Console.WriteLine("Local Name:" + textReader.LocalName);
Console.WriteLine("Attribute Count:" + textReader.AttributeCount.ToString());
Console.WriteLine("Depth:" + textReader.Depth.ToString());
Console.WriteLine("Line Number:" + textReader.LineNumber.ToString());
Console.WriteLine("Node Type:" + textReader.NodeType.ToString());
Console.WriteLine("Attribute Count:" + textReader.Value.ToString());
}
}
}
}

四 运用XmlDocument类

XmlDocument类代表了XML文档,它能完成与整个XML文档相关的各类操作,同时和其相关的XmlDataDocument类也是非常重要的,值得深入研究。 该类包含了Load、LoadXml以及Save等重要的方法。

Load方法: 可以从一个字符串指定的XML文件或是一个流对象、一个TextReader对象、一个XmlReader对象导入XML数据。
LoadXml方法: 则完成从一个特定的XML文件导入XML数据的功能。
Save方法: 则将XML数据保存到一个XML文件中或是一个流对象、一个TextWriter对象、一个XmlWriter对象中。

下面的示例中,用到了XmlDocument类对象的LoadXml方法,它从一个XML文档段中读取XML数据并调用其Save方法将数据保存在一个文件中。

复制代码 代码如下:


// 创建一个XmlDocument类的对象
XmlDocument doc = new XmlDocument();
doc.LoadXml(("Tommy Lex"));

// 保存到文件中
doc.Save("C:\\student.xml");

// 还可以通过改变Save方法中参数,将XML数据显示在控制台中,方法如下:
doc.Save(Console.Out);

下面的示例中,用到了一个XmlTextReader对象,通过它读取"books.xml"文件中的XML数据。然后创建一个XmlDocument对象并载入XmlTextReader对象,这样XML数据就被读到XmlDocument对象中了。最后,通过该对象的Save方法将XML数据显示在控制台中。

XmlDocument doc = new XmlDocument();
// 创建一个XmlTextReader对象,读取XML数据
XmlTextReader reader = new XmlTextReader("c:\\books.xml");
reader.Read();

// 载入XmlTextReader类的对象
doc.Load(reader);
// 将XML数据显示在控制台中
doc.Save(Console.Out);

xml文件

复制代码 代码如下:






The Autobiography of Benjamin Franklin

Benjamin
Franklin

8.99


The Confidence Man

Herman
Melville

11.99


The Gorgias

Sidas
Plato

9.99


另外一个.net操作xml文件示例

复制代码 代码如下:


//设置配置文件物理路径
public string xmlPath = "/manage/spider/config.xml";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//设置程序物理路径+文件物理路径
string path = Request.PhysicalApplicationPath + xmlPath;
//获取XML元素对象
XElement config = XElement.Load(path);
if (config != null)
{
//获得节点子元素
XElement eleAmazonDetailUrl = config.Element("AmazonDetailUrl");
XElement eleAmazonListUrl = config.Element("AmazonListUrl");
XElement eleHz = config.Element("Hz");
XElement eleCount = config.Element("Count");
//在页面上呈现取到的数据
if (eleAmazonDetailUrl != null)
TextBox_AmazonDetailUrl.Text = eleAmazonDetailUrl.Value;
if (eleAmazonListUrl != null)
TextBox_AmazonListUrl.Text = eleAmazonListUrl.Value;
if (eleHz != null)
TextBox_Hz.Text = eleHz.Value;
if (eleCount != null)
TextBox_Count.Text = eleCount.Value;
}
else
Response.Write("");

}
}
protected void btn_Save_Click(object sender, EventArgs e)
{
//设置XML文件路径
string path = Request.PhysicalApplicationPath + xmlPath;
//设置节点的名称和内容
XElement root = new XElement("Settings",
new XElement("AmazonDetailUrl", TextBox_AmazonDetailUrl.Text.Trim()),
new XElement("AmazonListUrl", TextBox_AmazonListUrl.Text.Trim()),
new XElement("Hz", TextBox_Hz.Text.Trim()),
new XElement("Count", TextBox_Count.Text.Trim())
);
//将元素序列化到指定路径的XML文件当中
root.Save(path);
}

"如何理解.net读写xml文档"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

方法 对象 文档 数据 文件 代码 元素 节点 示例 功能 属性 序列 控制台 类型 路径 控制 内容 格式 过程 面的 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技金融是不是互联网金融 互联网与科技发展 深圳艾佳互联网科技 互联网养老 桔豆科技 互联网金融监管科技 互联网科技素材视频竖屏 深圳互联网科技怎么样 团飞科技与伯堂互联网服务平台 贵州叶脉互联网科技有限公司所属行业 河南猎农互联网科技有限公司 长沙茂晟互联网科技有限公司 中科明德北京互联网科技 互联网领先科技宣传片 富国互联网金融科技混合基金 工业互联网科技创业 广州有谷有贝互联网科技有限公司 易企秀互联网科技是做什么的 容联科技互联网电商 如何强化互联网金融科技 互联网 科技节活动 微视频大赛 小米移动互联网科技园 互联网新科技 互联网金融 金融科技 有木互联网科技 科技伦理 互联网公司 全球顶尖互联网科技公司 互联网为啥属于高科技 未来五年的互联网科技 互联网科技创新的路径 瑞安市蟠桃会互联网科技有限公司
0