如何使用 Linq to XML 添加顶级元素

发布于 2024-10-02 12:41:30 字数 449 浏览 2 评论 0原文

假设我有一个名为 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>

添加附加元素似乎相当容易,但在添加顶级元素时则例外。

Assuming I have a xdocument called xd, with the following xml already created.

<Alert>
  <Source>
    <DetectTime>12:03:2010 12:22:21</DetectTime>
  </Source>
</Alert>

How would I be able to add another Alert element, such that the xml becomes:

<Alert>
  <Source>
    <DetectTime>12:03:2010 12:22:21</DetectTime>
  </Source>
</Alert>
<Alert>
</Alert>

Adding an additional elements seems to be fairly easy, but when adding in a top level element it excepts.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

涙—继续流 2024-10-09 12:41:30

您想要的 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);

上面的代码会生成 因为没有子节点添加到它(一旦添加到它,这将会改变)。如果您想要如图所示的结束标记,可以使用 xdoc.Root.Add(new XElement("Alert", String.Empty)); 代替。

要验证您所需的输出是否具有无效结构,您可以尝试使用类似于我上面所示的 XDocument.Parse 来解析它。

Your desired XML structure is invalid; you need a root element in order to add another "Alert" node. The following code shows how to add it when a root node exists:

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);

The above code produces <Alert /> since no child nodes are added to it (this will change once you add to it). If you want the closing tag as you have shown you can use xdoc.Root.Add(new XElement("Alert", String.Empty)); instead.

To verify that your desired output has an invalid structure you can try parsing it using XDocument.Parse similar to what I've shown above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文