2015-04-18 115 views
0

我想在C#中現有的xmldocument中的另一個子XML節點插入一個XML節點。 我有一個XML文檔,看起來像這樣:我如何創建並在另一個節點內插入一個節點

<?xml version="1.0" encoding="utf-16"?> 
<DictionarySerializer> 
    <item> 
     <key>statusCode</key> 
     <value>0</value> 
    </item> 
    <item> 
     <key>statusSeverity</key> 
     <value>INFO</value> 
    </item> 
    <item> 
     <key>statusMessage</key> 
     <value>Status OK</value> 
    </item> 
    <item> 
     <key>MerchantAccountNumber</key> 
     <value>9999999999</value> 
    </item> 
    <item> 
     <key>ReconBatchID</key> 
     <value>420150418 1Q02144266965047801046AUTO04</value> 
    </item> 
    <item> 
     <key>PaymentGroupingCode</key> 
     <value>3</value> 
    </item> 
    <item> 
     <key>responsePaymentStatus</key> 
     <value>Completed</value> 
    </item> 
    <item> 
     <key>TxnAuthorizationTime</key> 
     <value>2015-04-18T09:14:41</value> 
    </item> 
    <item> 
     <key>TxnAuthorizationStamp</key> 
     <value>1429348481</value> 
    </item> 
    <item> 
     <key>ClientTransID</key> 
     <value>aidjl79f</value> 
    </item> 
</DictionarySerializer> 

,我需要插入在底部的一個節點,節點的另一節點。 我有這個至今:

XmlDocument xmlCustomValues = new XmlDocument(); 
      xmlCustomValues.LoadXml(OldCustomValues); 
      XmlNode NodeItem = xmlCustomValues.SelectSingleNode("DictionarySerializer"); 
      XmlNode NodeNewItem = xmlCustomValues.CreateNode(XmlNodeType.Element, "item", null); 
    XmlNode NodeNewKey = NodeNewItem.?????? 

,但不知道如何創建NodeNewItem下一個節點(有沒有「CreateNode」方法)。從來沒有做過(明顯),語法對我沒有意義。


這裏有一個答案是工作

string OldCustomValues = this.txtInput.Text; 
    XmlDocument xmlCustomValues = new XmlDocument(); 
    xmlCustomValues.LoadXml(OldCustomValues); 
    XmlNode NodeItem = xmlCustomValues.SelectSingleNode("DictionarySerializer"); 
    XmlNode NodeNewItem = xmlCustomValues.CreateNode(XmlNodeType.Element, "item", null); 
    NodeItem.AppendChild(NodeNewItem); 
    XmlNode NodeNewKey = xmlCustomValues.CreateNode(XmlNodeType.Element, "key", null); 
    NodeNewKey.InnerText = "MyKey"; 
    XmlNode NodeNewValue = xmlCustomValues.CreateNode(XmlNodeType.Element, "value", null); 
    NodeNewValue.InnerText = "MyValue"; 
    NodeNewItem.AppendChild(NodeNewKey); 
    NodeNewItem.AppendChild(NodeNewValue); 

    this.txtOutput.Text = xmlCustomValues.OuterXml; 
+0

這對你有用嗎? – Legends

+0

是否這樣? NodeItem.AppendChild(NodeNewItem); XmlNode NodeNewKey = xmlCustomValues.CreateNode(XmlNodeType.Element,「key」,null); NodeNewKey.InnerText =「MyKey」; XmlNode NodeNewValue = xmlCustomValues.CreateNode(XmlNodeType.Element,「value」,null); NodeNewValue.InnerText =「MyValue」; NodeNewItem.AppendChild(NodeNewKey); NodeNewItem.AppendChild(NodeNewValue); – MC9000

+0

對不起,評論部分確實需要在StackExchange上更好(無法格式化!) – MC9000

回答

2

您已經創建的節點(上面的XML文檔的測試代碼),U只需將節點添加到根

NodeItem.AppendChild(NodeNewItem); 
相關問題