用c#更新XML文件

本文关键字:文件 XML 更新 | 更新日期: 2023-09-27 18:14:53

我想更新我的XML文件。但是我的解析代码返回null作为结果。这是我的代码:

StreamResourceInfo xml = Application.GetResourceStream(new Uri("XML/Category.xml", UriKind.Relative));
var doc = XDocument.Load(xml.Stream);
var _result = from x in doc.Elements("Category") where x.Element("Name").Value.Equals("Custom") select x;
_result.First().Element("Subcategories").Value = ",test";
这是我的XML文件(非常简单):
   <Categories>
      <Category>
        <Name>Custom</Name>
        <Subcategories></Subcategories>
    </Category>
      <Category>
        <Name>Popular</Name>
        <Subcategories>Most Popular,2nd Popular,3rd Popular</Subcategories>
      </Category>
      ...
   </Categories>

用c#更新XML文件

这就是问题所在:

doc.Elements("Category")

这是寻找元素称为Category(根元素是XDocument的唯一直接子元素)。你想要的:

doc.Root.Elements("Category")

doc.Descendants("Category")

简短但完整的演示:

using System;
using System.Linq;
using System.Xml.Linq;
class Test
{
    static void Main()
    {
        var doc = XDocument.Load("test.xml");
        var result = from x in doc.Root.Elements("Category")
                     where x.Element("Name").Value.Equals("Custom")
                     select x;
        Console.WriteLine(result.Count());
    }
}

使用你给我们的精确的 XML,打印1。