gpt4 book ai didi

c# - XML 排序异常

转载 作者:数据小太阳 更新时间:2023-10-29 02:24:27 25 4
gpt4 key购买 nike

我正在尝试通过元素的属性对 LINQ 中的 XML 文件中的元素进行排序:

public void SortXml()
{
XDocument doc = XDocument.Load(filename);
XDocument datatemp = new XDocument(doc);

doc.Descendants("Thing").Remove();
var module = datatemp.Descendants("Thing").OrderBy(x =>
(int)int.Parse(x.Attribute("ID").Value));
doc.Element("Thing").Add(module);

doc.Save(filename);
}

XML:

<Entry>
<Properties>
<Thungs Count="2">
<Thing ID="1">
<thing1 num="8" />
<thing1 num="16" />
</Thing>
<Thing ID="31">
<thing1 num="8" />
<thing1 num="16" />
</Thing>
</Thungs>
</Properties>
</Entry>

但是在 doc.Element("Thing").Add(module); 行中,我得到了一个 NullReferenceException。怎么了?

最佳答案

doc.Element("Thing") 将返回 null,因为没有名为 "Thing" 的元素: doc.Descendants("Thing").Remove(); 调用已将它们全部删除。即使没有,XElementElement 方法也不会查看间接后代,因此您需要提供指向元素的正确元素名称链你想修改。

你是不是想写

doc.Element("Entry").Element("Properties").Element("Thungs").Add(module);

关于c# - XML 排序异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11382268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com