在appendchild xml中添加新项c#

时间:2012-07-26 04:55:04

标签: c# xml dom

我需要添加一个新项目。这个新项目将作为孩子添加。但它似乎只将一个子项中的所有数据输入组合在一起。下面是我的代码。

XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load("C:\\Users\\HDAdmin\\Documents\\SliceEngine\\SliceEngine\\bin\\Debug\\saya.xml");
XmlElement contentElement = xmlDoc.CreateElement("Name");
XmlElement itemEl = xmlDoc.CreateElement("item");
XmlText xmlText = xmlDoc.CreateTextNode(textBox1.Text.Trim());
itemEl.AppendChild(xmlText);
contentElement.AppendChild(itemEl);
xmlDoc.DocumentElement.AppendChild(contentElement);                

XmlElement thumbEl = xmlDoc.CreateElement("thumb");
XmlText xmlThumb = xmlDoc.CreateTextNode(textBox2.Text.Trim());
itemEl.AppendChild(xmlThumb);
contentElement.AppendChild(thumbEl);
xmlDoc.DocumentElement.AppendChild(contentElement);
                    xmlDoc.Save("C:\\Users\\HDAdmin\\Documents\\SliceEngine\\SliceEngine\\bin\\Debug\\saya.xml");

输出

<Name>
 <item>werasd</item>
 <thumb/> </Name>

但输出应该出现

<Name>
     <item>wer</item>
     <thumb>asd<thumb/> 

我该怎么办?

2 个答案:

答案 0 :(得分:3)

使用XmlElement.InnerText。它获取或设置节点的连接值。所以你的代码应该是这样的:

XmlText xmlThumb = xmlDoc.CreateTextNode(textBox2.Text.Trim()); itemEl.AppendChild(xmlThumb);

// new code
thumbEl.InnerText = textBox2.Text.Trim();

答案 1 :(得分:1)

你将它附加到错误的项目更改

itemEl.AppendChild(xmlThumb);

到这个

thumbEl.AppendChild(xmlThumb);