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日

相关文章

  • Html5之自定义属性(data-,dataset)

    当网页中需要存储一些自定义的信息,但是并不适合用HTML中固有的属性来描述时,可以使用自定义属性(Custom Data Attributes)。HTML5提出了两种自定义属性的写法:data-和dataset。 什么是data-属性? data-属性是一类可以在HTML元素上存储自定义数据的属性。它们被设计为“根据HTML5规范自定义的”,并且只允许小写字…

    html 2023年5月30日
    00
  • 服务器XMLHTTP(Server XMLHTTP in ASP)基础知识

    服务器XMLHTTP(Server XMLHTTP in ASP)是一种可以在ASP中使用的对象模型,用于在服务器端发送HTTP请求并接收响应。它可以被用于实现各种功能,如获取远程API数据、Web Scrapping等。以下是关于XMLHTTP的一些基础知识和操作攻略: XMLHTTP基础知识 创建XMLHTTP对象 在ASP中,XMLHTTP对象的创建使…

    html 2023年5月30日
    00
  • 详解C#操作XML的方法总结

    下面是详解“详解C#操作XML的方法总结”的完整攻略。 1. 简介 XML是一种常用的数据交换格式,也逐渐成为多个领域的标准。C#语言提供了丰富的操作XML的方法和类,本篇攻略将总结C#操作XML的方法。 2. 常用的XML操作类 2.1 XmlDocument XmlDocument类是操作XML文档最基本的类,它可以加载、创建和操作XML文档。下面是Xm…

    html 2023年5月30日
    00
  • Python不支持 i ++ 语法的原因解析

    Python不支持 i ++ 语法的原因解析 在 Python 中,i++ 这样的语法是无效的,这是由于 Python 语法规则的限制。下面是 Python 不支持 i++ 的原因解析。 1. Python不支持自增自减操作符 相比于其他语言 (如 C, C++, Java),Python 不支持自增自减操作符 ++ 和 — ,无论是作为前缀还是后缀。因此…

    html 2023年5月30日
    00
  • 使用SyntaxHighlighter实现HTML高亮显示代码的方法

    接下来我将详细介绍如何使用SyntaxHighlighter实现HTML高亮显示代码的方法,包括必要的准备工作和步骤,以及示例说明。 准备工作 下载SyntaxHighlighter的源代码和CSS样式文件。可以从官网下载最新版本的代码,或者使用GitHub上的源代码。 将下载的代码解压缩到合适的目录中,并将CSS样式文件放到网站的样式文件夹中。 在HTML…

    html 2023年5月30日
    00
  • Javaweb接收表单数据并处理中文乱码

    Javaweb 接收表单数据并处理中文乱码,一般可以通过以下几个步骤来实现: 1.设置 Request 对象的编码方式 在接收表单数据之前,需要先设置 Request 对象的编码方式,一般可以使用如下代码来设置: request.setCharacterEncoding("UTF-8"); 其中 “UTF-8” 表示编码方式,这里使用 U…

    html 2023年5月31日
    00
  • CentOS8出现-bash:乱码问题及解决方法

    当在CentOS 8系统中使用终端时,可能会出现命令行界面的乱码问题,这是由于系统默认的字符集不匹配所导致的。这个问题可以通过设置正确的字符集来解决。 以下是解决这个问题的详细步骤: 问题描述 当在终端中输入命令时,可能会看到一些奇奇怪怪的字符,例如: $ -bash: ls: 未找到命令 或者 $ -bash: \nn: 未找到命令 这个问题可能会导致命令…

    html 2023年5月31日
    00
  • ai没保存怎么找回? ai未保存文件的两种找回方法

    当AI未保存文件时,我们可以尝试以下两种方法来找回文件: 方法1:使用恢复功能 打开AI软件,点击“文件”菜单,选择“恢复”。 在弹出的窗口中,选择未保存的文件,点击“恢复”。 如果恢复成功,将会提示您保存文件。 保存文件后,即可找回未保存的文件。 方法2:查找临时文件 打开文件管理器,进入系统盘符(通常为C盘)。 在搜索框中输入“*.tmp”(不含引号),…

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