我正在尝试更新我的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>
答案 0 :(得分:2)
这是问题所在:
doc.Elements("Category")
正在寻找名为Category
的 root 元素(根元素是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。