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

时间:2015-06-30 18:03:06

标签: c# xmldocument

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

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

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

newRevNumber只是当前dateTime的MD5哈希值。

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

另外,我会选择使用XDocument,但我对LINQ to XML不太熟悉,无法取得成果。

2 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:0)

  

另外,我刚刚接受了XDocument,但我对LINQ to XML不太熟悉以取得成果。

LINQ to XML非常简单,与XmlDocument的非常详细的API相比非常轻量级。

您可以像XDocument这样获得所需的XML文档:

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,则可以根据需要始终在两种格式之间进行转换。 This question涵盖了如何做到这一点。