假设我有一个名为xd的xdocument,已经创建了以下xml。
<Alert>
<Source>
<DetectTime>12:03:2010 12:22:21</DetectTime>
</Source>
</Alert>
我如何能够添加另一个Alert元素,使xml变为:
<Alert>
<Source>
<DetectTime>12:03:2010 12:22:21</DetectTime>
</Source>
</Alert>
<Alert>
</Alert>
添加其他元素似乎相当容易,但在添加顶级元素时,它会超出。
答案 0 :(得分:0)
您想要的XML结构无效;您需要一个根元素才能添加另一个“警报”节点。以下代码显示了在根节点存在时如何添加它:
var xdoc = XDocument.Parse(@"<root>
<Alert>
<Source>
<DetectTime>12:03:2010 12:22:21</DetectTime>
</Source>
</Alert>
</root>");
xdoc.Root.Add(new XElement("Alert"));
Console.WriteLine(xdoc);
上面的代码生成<Alert />
,因为没有添加任何子节点(一旦添加它就会改变)。如果您想要显示结束标记,则可以使用xdoc.Root.Add(new XElement("Alert", String.Empty));
代替。
要验证您所需的输出是否具有无效结构,您可以尝试使用XDocument.Parse
解析它,类似于我在上面显示的内容。