假设我有一个名为xd的xdocument,已经创建了以下xml。
<Alert> <Source> <DetectTime>12:03:2010 12:22:21</DetectTime> </Source> </Alert>
我如何才能添加另一个警报元素,使xml变成:
<Alert> <Source> <DetectTime>12:03:2010 12:22:21</DetectTime> </Source> </Alert> <Alert> </Alert>
添加一个额外的元素看起来相当容易,但是当添加一个顶级元素时就例外了。
所需的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)); 相反。
<Alert />
xdoc.Root.Add(new XElement("Alert", String.Empty));
若要验证所需输出的结构是否无效,可以尝试使用 XDocument.Parse 类似于我上面所展示的。
XDocument.Parse