如何将字符串作为节点添加到新的XmlDocument中

本文关键字:XmlDocument 添加 节点 字符串 | 更新日期: 2023-09-27 18:00:41

对这个非常基本的问题表示歉意,但我正在尝试将动态生成的字符串添加到新的XmlDocument中。

我最初尝试过下面的代码,但不确定是否有更好的方法。

var summaryXml = new XmlDocument();
    summaryXml.InnerXml.Replace("", "<Summary rev='"" + newRevNumber + "'"></Summary>");

newRevNumber只是当前dateTime的MD5散列。

我有一个已经有数据的XML节点集合,在插入上面列出的字符串作为第一个子字符串之后,我试图将它们附加到这个新XmlDocument的末尾。

此外,我本来只想使用XDocument,但我对LINQ to XML还不够熟悉,无法获得结果。

如何将字符串作为节点添加到新的XmlDocument中

此外,我本来只想使用XDocument,但我对LINQ to XML还不够熟悉,无法获得结果。

XmlDocument的非常冗长的API相比,LINQ to XML非常简单,并且非常轻量级。

您可以获得所需的XML文档作为XDocument,如下所示:

XDocument summaryXml = new XDocument(
    new XElement("Summary",
        new XAttribute("rev", newRevNumber)
    )
);

生成与以下XmlDocument用法相同的文档:

XmlDocument summaryXml = new XmlDocument();
XmlElement summary = summaryXml.CreateElement("Summary");
XmlAttribute rev = summaryXml.CreateAttribute("rev");
rev.Value = newRevNumber;
summary.Attributes.Append(rev);
summaryXml.AppendChild(summary);

正如你所看到的,XDocument要好得多…;)

不过,如果您需要XmlDocument,您可以随时根据需要在这两种格式之间进行转换。这个问题涵盖了如何做到这一点。

试试这个

var summaryXml = new XmlDocument();
var summaryElement = summaryXml.CreateElement("Summary");
var revAttribute = summaryXml.CreateAttribute("rev");
revAttribute.Value = newRevNumber;
summaryElement.Attributes.Append(revAttribute);
summaryXml.AppendChild(summaryElement);