2015-06-30 50 views
0

道歉的基本問題,但我想添加一個動態生成的字符串到一個新的XmlDocument。如何將字符串作爲節點添加到新的XmlDocument?

我最初試過下面的代碼,但不知道是否有更好的方法。

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

newRevNumber只是當前dateTime的MD5散列。

我有一個已經有數據的XML節點的集合,並且在插入上面列出的字符串作爲第一個孩子後,我試圖將它們追加到這個新的XmlDocument的末尾。另外,我會用XDocument去,但是我不熟悉LINQ to XML來達到結果。

+0

你可能想看看我的答案[這裏] [1]。 [1]:http://stackoverflow.com/a/29833123/858003 –

+0

順便說一句,你有* *使用'XmlDocument'?如果你可以使用LINQ to XML('XDocument'等),生活會以各種方式變得更好...... –

回答

0

另外,我剛纔曠古的XDocument,但我不熟悉不夠用的LINQ to XML達到的效果。

與非常詳細的API XmlDocument相比,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雖然,你可以隨時在兩種格式之間轉換必要元。 This question涵蓋了如何做到這一點。

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); 
相關問題