C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页

C# XML操作 代码大全:读写XML、操作节点

读取XML文件

读取XML文件可以使用XmlDocument类和XmlReader类。

  1. 使用XmlDocument
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("example.xml");  // 加载文件
XmlNodeList nodeList = xmlDoc.SelectNodes("root/node");  // 选择节点
foreach (XmlNode node in nodeList)
{
    string name = node.Attributes["name"].Value;  // 获取属性
    string value = node.InnerText;  // 获取文本
}
  1. 使用XmlReader
XmlReader reader = XmlReader.Create("example.xml");
while (reader.Read())  // 循环读取
{
    if (reader.Name == "node" && reader.NodeType == XmlNodeType.Element)
    {
        string name = reader.GetAttribute("name");  // 获取属性
        string value = reader.ReadElementContentAsString();  // 获取文本
    }
}

写入XML文件

写入XML文件可以使用XmlDocument类和XmlWriter类。

  1. 使用XmlDocument
XmlDocument xmlDoc = new XmlDocument();
XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmlDoc.AppendChild(xmlDec);
XmlElement root = xmlDoc.CreateElement("root");
XmlAttribute attr = xmlDoc.CreateAttribute("name");
attr.Value = "example";
root.SetAttributeNode(attr);  // 添加属性
XmlElement node = xmlDoc.CreateElement("node");
node.InnerText = "Hello,XML";
root.AppendChild(node);  // 添加子节点
xmlDoc.AppendChild(root);
xmlDoc.Save("example.xml");  // 保存文件
  1. 使用XmlWriter
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create("example.xml", settings))
{
    writer.WriteStartDocument();  // 写入声明
    writer.WriteStartElement("root");  // 写入根节点
    writer.WriteAttributeString("name", "example");  // 写入属性
    writer.WriteElementString("node", "Hello,XML");  // 写入子节点和文本值
    writer.WriteEndElement();  // 结束根节点
    writer.WriteEndDocument();  // 结束写入
}

更新XML文件

更新XML文件可以使用XmlDocument类和XPath表达式。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("example.xml");
XmlNode node = xmlDoc.SelectSingleNode("root/node[@name='example']");  // 根据XPath表达式选择节点
if (node != null)
{
    node.InnerText = "Hello,XML Updated";  // 更新节点文本值
    xmlDoc.Save("example.xml");  // 保存文件
}

删除XML节点

删除XML节点可以使用XmlDocument类和XPath表达式。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("example.xml");
XmlNode root = xmlDoc.SelectSingleNode("root");
XmlNode node = xmlDoc.SelectSingleNode("root/node[@name='example']");  // 根据XPath表达式选择节点
if (node != null)
{
    root.RemoveChild(node);  // 移除节点
    xmlDoc.Save("example.xml");  // 保存文件
}

示例说明

假设有如下XML文件example.xml

<?xml version="1.0" encoding="utf-8"?>
<root name="example">
    <node name="example">Hello,XML</node>
    <node name="test">Hello,XML Again</node>
</root>
  1. 读取XML文件并获取节点属性和文本值:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("example.xml");
XmlNodeList nodeList = xmlDoc.SelectNodes("root/node");
foreach (XmlNode node in nodeList)
{
    string name = node.Attributes["name"].Value;
    string value = node.InnerText;
    Console.WriteLine(name + ": " + value);
}

输出结果:

example: Hello,XML
test: Hello,XML Again
  1. 写入XML文件并添加节点和属性:
XmlDocument xmlDoc = new XmlDocument();
XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmlDoc.AppendChild(xmlDec);
XmlElement root = xmlDoc.CreateElement("root");
XmlAttribute attr = xmlDoc.CreateAttribute("name");
attr.Value = "example2";
root.SetAttributeNode(attr);
XmlElement node = xmlDoc.CreateElement("node");
node.InnerText = "Hello,XML2";
root.AppendChild(node);
xmlDoc.AppendChild(root);
xmlDoc.Save("example2.xml");

将生成如下XML文件example2.xml

<?xml version="1.0" encoding="utf-8"?>
<root name="example2">
  <node>Hello,XML2</node>
</root>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • HTML代码中标签的全部属性 中文注释说明

    下面我将详细讲解HTML代码中标签的全部属性中文注释说明的完整攻略。 在HTML中,每个标签都可以有不同的属性,属性可以进一步控制标签的行为和样式。下面是几个常见的标签及其属性: img 标签 该标签用于在网页中插入图片,常见的属性包括: src:指定图片的路径 alt:用于添加替代文本,当图片无法显示时会显示这段文本 width:指定图片的宽度 heigh…

    html 2023年5月30日
    00
  • Eclipse怎么导入jar包 Eclipse导入jar包快捷键及图文详细教程

    崩坏星穹铁道忘却之庭12层boss怎么挑战 忘却之庭12层通关攻略 崩坏星穹铁道忘却之庭12层是一款非常受欢迎的游戏,以下是关于挑战忘却之庭12层boss的攻略,包括以下几个步骤: 步骤1:准备好角色和装备 在挑战忘却之庭12层boss之前,您需要准备好您的角色和装备。您可以选择一些高级角色和装备,以提高您的战斗力。 步骤2:了解boss的属性和技能 在挑战…

    html 2023年5月17日
    00
  • C#读取XML的三种实现方式

    如何使用C#读取XML文档?这是很多C#开发者经常遇到的问题。在本篇文章中,会详细介绍C#读取XML的三种实现方式。 一、使用XmlDocument 使用XmlDocument是读取XML文档最简单的方法。XmlDocument是System.Xml命名空间中的一个类,可以用来读取和操作XML文档。 步骤1:引用命名空间 在代码中引用System.Xml命名…

    html 2023年5月30日
    00
  • SpringBoot 文件或图片上传与下载功能的实现

    接下来我将详细讲解 SpringBoot 文件或图片上传与下载功能的实现攻略。 1. 文件上传 1.1 前端实现 前端代码中需要添加一个上传文件的表单及其相关事件处理。可以使用HTML5自带的 FormData 类,一步步向后台传输数据。代码示例如下: <form id="fileUploadForm"> <input …

    html 2023年5月30日
    00
  • JSP语法Page指令

    JSP语法中Page指令用于定义JSP页面的一些特殊属性。 Page指令语法 Page指令必须包含在JSP页面的第一行,其语法格式如下: <%@ page 属性名1="属性值1" 属性名2="属性值2" … %> Page指令的属性值必须用双引号括起来,多个属性以逗号分隔,可以换行书写,但不要在属性值之…

    html 2023年5月30日
    00
  • Android中HTTP请求中文乱码解决办法

    标题:Android中HTTP请求中文乱码解决办法 问题描述:当在Android应用中进行HTTP请求时,有时会出现中文乱码的情况。如何解决这个问题? 解决方案: 在HTTP请求时,使用UTF-8编码提交中文参数 在Android中,HTTP请求时可以通过设置请求头中的Content-Type参数为application/x-www-form-urlenco…

    html 2023年5月31日
    00
  • HTML5的表单(绝对特别强大的功能)使用示例

    下面我来详细讲解“HTML5的表单(绝对特别强大的功能)使用示例”的完整攻略。 HTML5表单概述 HTML5新增了很多表单元素和属性,提供了更加强大和灵活的表单功能,包括但不限于以下几点: 新增了一些表单元素,如date、time、email、tel等,这些表单元素让用户选择更具有语义和响应性的数据。 改进了表单验证功能,新的属性和API能够让开发者更加方…

    html 2023年5月30日
    00
  • 运用El表达式截取字符串/获取list的长度实例

    下面是运用EL表达式截取字符串/获取List长度的完整攻略: 一、截取字符串 1. 基本语法 ${string.substring(beginIndex, endIndex)} string:要截取的原始字符串 beginIndex:起始位置(从0开始计数) endIndex:终止位置(不包含该字符) 2. 示例说明 例如,我们有一个字符串变量 str,其值…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部