[英]Add an element at a specific point with XDocument?
我想在某个点添加一个元素。 请参阅代码中的注释。
<Country>
<State>
<Coordinate point="foo" /> <!-- That worked.-->
<Cali>
<Coordinate point="bar" /> <!-- How does that work in this case?-->
</Cali>
</State>
</Country>
到目前为止我的代码:
var doc = XDocument.Load(test.xml);
var coordinateElement = new XElement("Coordinate");
coordinateElement.Add(new XAttribute("point", "foo"));
doc.Root.Element("State").Add(coordinateElement);
doc.Save(test.xml);
在<State>
之后添加元素<Coordinate>
效果很好。
但是当我想在<Cali>
之后添加它...
var doc = XDocument.Load(test.xml);
var coordinateElement = new XElement("Coordinate");
coordinateElement.Add(new XAttribute("point", "bar"));
doc.Element("State").Add(coordinateElement);
doc.Save(test.xml);
我收到以下错误:“对象引用未设置为 object 的实例。”
正如伟大的Jon Skeet指出的那样,在您的第二个声明中, doc
缺少Root
,以防止 null 参考。
此外 Element 只查看直接子节点,因此您首先需要到达State
节点,然后到达Cali
节点。 总而言之,它应该看起来像这样:
doc.Root.Element("State").Element("Cali").Add(coordinateElement);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.