XmlReader AppendChild不附加相同的子值

XmlElement updateRecipient = doc.CreateElement("UpdateRecipient"); XmlElement email = doc.CreateElement("EMAIL"); XmlElement listID = doc.CreateElement("LIST_ID"); XmlElement column = doc.CreateElement("COLUMN"); XmlElement name = doc.CreateElement("NAME"); XmlElement value = doc.CreateElement("VALUE") root.AppendChild(body); body.AppendChild(updateRecipient); updateRecipient.AppendChild(listID); listID.InnerText = _listID; updateRecipient.AppendChild(email); email.InnerText = _email; updateRecipient.AppendChild(column); column.AppendChild(name); name.InnerText = _columnNameFrequency; column.AppendChild(value); value.InnerText = _actionID.ToString(); updateRecipient.AppendChild(column); column.AppendChild(name); name.InnerText = _columnNameStatus; column.AppendChild(value); 

出于某种原因,我最终只在updateRecipient元素下获得了一个子列而不是两个子列。 我需要两个都显示在UpdateRecipient节点下,如下所示:

  85628 somebody@domain.com  Frequency 1   Status Opted In   

但到目前为止我只得到一个:

  85628 somebody@domain.com  Status Opted In   

当它命中第一个AppendChild(列)然后命名和值时,频率显示find但后来又被状态覆盖,我希望它只是追加一个新的,我不知道它为什么覆盖而不是添加另一个标记。

问题是您正在重用“列”,“名称”和“值”变量。 您需要为第二组创建新的XmlElements。

我不知道,但尝试以相反的顺序进行。 这就是我一直以来所做的。 不要将updateRecipient附加到root,直到你完成它。

以为你可以重复使用现有的元素,但你不能..