C#-XML基础 XElement Attributes 获取根节点的一级子节点中所有属性的名字和值

这篇博客介绍了如何在C#中使用XML来获取XElement根节点的一级子节点的所有属性名和值。内容涉及到.NET Framework 4.7.2和Visual Studio 2019的使用,以及相关资源链接,包括XML的基础教程和C#的官方文档。博主提醒读者,这篇文章是中等级别的自学笔记,适合有一定基础的学习者参考。
摘要由CSDN通过智能技术生成
  • .NET Framework : 4.7.2
  •        IDE : Visual Studio Community 2019
  •         OS : Windows 10 x64
  •     typesetting : Markdown
  •         blog : xinshaopu.blog.csdn.net

xml file

<?xml version="1.0" encoding="utf-8"?>
<cultures>
  <taoists count="100" comment="good-t">
    <book>
      <name>道德经</name>
      <author>老子</author>
    </book>
    <book>
      
C#操作XML文档,可以使用`System.Xml.Linq`命名空间提供的类库来进行XML的读取、修改和写入等操作。以下是关于如何在XML文档插入同级节点子节点的基本步骤: ### 插入同级节点 假设你有一个XML字符串或者已经加载了XML文件到Linq to XML的DOM树。为了插入一个新的同级节点,你可以通过遍历当前元素的所有子元素,并在适当的位置创建新的元素。 #### 示例代码: ```csharp using System; using System.IO; using System.Xml.Linq; class Program { static void Main() { // 创建原始的XML字符串 string xmlStr = "<root>\n" + " <childA>Value A</childA>\n" + " <childB>Value B</childB>\n" + "</root>"; XDocument doc = XDocument.Parse(xmlStr); // 获取所有孩子节点 XElement root = (XElement)doc.Root!; IEnumerable<XElement> children = root.Elements(); // 计算孩子节点的数量 int childCount = children.Count(); // 创建新元素并插入到指定位置 XElement newChild = new XElement("newChild", "New Value"); doc.Root.Insert(childCount, newChild); // 写出修改后的XML字符串 string updatedXmlStr = doc.ToString(); Console.WriteLine(updatedXmlStr); } } ``` ### 插入子节点 插入子节点相对简单,只需要使用 `Add()` 方法将新元素添加到所需的位置即可。这里同样假设我们已经有了一个XML文档和其结构的引用。 #### 示例代码: ```csharp using System; using System.IO; using System.Xml.Linq; class Program { static void Main() { // 使用相同的XML字符串作为示例 string xmlStr = "<root>\n" + " <childA>Value A</childA>\n" + " <childB>Value B</childB>\n" + "</root>"; XDocument doc = XDocument.Parse(xmlStr); // 找到要插入子节点的元素位置,这里是找到名为"childA"的第一个元素之后 XElement parentElement = doc.Descendants("childA").First().Parent!; XElement childToInsert = new XElement("newChild", "Inserted Value"); // 将新元素插入到找到的元素之后 parentElement.AddAfterSelf(childToInsert); // 写出修改后的XML字符串 string updatedXmlStr = doc.ToString(); Console.WriteLine(updatedXmlStr); } } ``` ### 相关问题: 1. 在XML文档如何查找特定元素的子元素? 2. 怎样从已解析的XML文档删除某个节点? 3. C#的LINQ to XML是否支持动态修改XML结构,例如改变属性或者删除某些元素? --- 注意:以上代码示例需要正确处理异常情况,如XML解析错误、节点不存在等问题,在实际应用应加入适当的错误检查机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值