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日

相关文章

  • 谷歌浏览器打开bilibili(B站)显示火星文乱码该怎么办?

    针对“谷歌浏览器打开bilibili(B站)显示火星文乱码该怎么办?”这个问题,我可以提供完整的攻略: 问题分析 首先,我们需要了解问题的原因。当使用 Google Chrome 浏览器打开 B 站时,如果出现网页乱码,那么通常的原因是浏览器所使用的编码格式与网页的编码格式不匹配。因为浏览器需要根据网页响应的内容类型和编码来决定如何显示网页内容,否则就会出现…

    html 2023年5月31日
    00
  • Excel表格中怎么制作正态分布图和正态曲线模板?

    如果您想在Excel表格中制作正态分布图和正态曲线模板,可以尝试以下方法: 制作正态分布图 打开Excel表格,输入数据。 选中数据,点击“插入”选项卡,选择“散点图”。 在散点图中,右键单击任意一个数据点,选择“添加趋势线”。 在“添加趋势线”对话框中,选择“正态分布”选项,勾选“显示方程式”和“显示R²值”。 点击“确定”按钮,即可在散点图中显示正态分布…

    html 2023年5月17日
    00
  • 电脑系统菜单显示乱码的原因以及解决办法(图文教程)

    电脑系统菜单显示乱码的原因以及解决办法 原因 电脑系统菜单显示乱码的原因可能有很多种,其中一些常见的原因如下: 字体未安装或损坏。在某些情况下,使用的字体可能未安装或损坏,会导致菜单显示乱码。 语言设置不正确。如果您的电脑语言设置不正确,可能会导致菜单显示乱码。 系统编码设置错误。如果在特定环境下,您的电脑编码设置不正确,可能会导致菜单显示乱码。 解决办法 …

    html 2023年5月31日
    00
  • 解决linux下vim中文乱码的方法

    针对“解决Linux下vim中文乱码”的问题,我来给您提供一份详细攻略。 解决Linux下vim中文乱码的方法 问题描述 在Linux系统下,使用vim编辑器时,如果文本中存在中文字符,可能会出现乱码现象,这会给开发和编辑者带来很多困扰。因此,我们需要采取措施来解决这个问题,从而像正常编辑英文文本一样编辑中文文本。 解决方法 在Linux下,解决vim中文乱…

    html 2023年5月31日
    00
  • JS操作HTML自定义属性的方法

    当需要在 HTML 元素上增加一些自定义属性时,我们可以使用 data-* 属性来实现。在 JS 中,通过修改这些自定义属性,可以改变元素的一些属性或行为。下面是完整的 JS 操作 HTML 自定义属性的攻略。 1. 获取 HTML 自定义属性的值 我们可以使用 .dataset 属性来获取 HTML 元素的自定义属性值,其中 dataset 属性是一个名值…

    html 2023年5月30日
    00
  • win10 2004卡在重启界面进不去怎么办 电脑停留在启动界面的解决方法

    以下是“win10 2004卡在重启界面进不去怎么办 电脑停留在启动界面的解决方法”的完整攻略: win10 2004卡在重启界面进不去怎么办 电脑停留在启动界面的解决方法 如果您的电脑在重启界面卡住了,无法进入系统,您可以按照以下步骤进行操作: 检查硬件设备:首先,您需要检查电脑的硬件设备是否正常。您可以检查电脑的硬盘、内存、显卡等设备是否正常连接。如果有…

    html 2023年5月18日
    00
  • 利用ascii码传输xml转义字符示例

    利用ASCII码传输XML转义字符是一种常见的网络编程技巧,可以在XML文本中传输一些特殊的字符。本攻略将介绍如何使用ASCII码传输XML转义字符,下面是详细的步骤: 前置条件 为了理解本攻略,您需要对以下概念有一些了解: ASCII码 XML中的转义字符 步骤 步骤一:选择需要传输的转义字符 在XML中,有一些字符需要使用转义字符来表示。例如,<需…

    html 2023年5月30日
    00
  • 将xml文件作为一个小的数据库,进行学生的增删改查的简单实例

    这里详细讲解一下如何将XML文件作为一个小的数据库,实现简单的学生增删改查功能。 1. 准备工作 首先,我们需要创建一个XML文件,作为我们的数据库。在这个XML文件中,我们可以使用各种标签来表示我们的数据结构,例如<students>、<student>、<name>等。 示例: <students> &lt…

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