如何将另一个元素/子节点添加到XML文件中的特定父节点?
特别是媒体节点的新视频对象。 我想转此:
<?xml version="1.0" encoding="utf-8" ?>
<media>
<Video name="Gladiator">
<English>path1</English>
<Chinese>path2</Cinese>
<French>path3</French>
</Video>
<Video name="Transformers">
<English>path4</English>
<Chinese>path5</Cinese>
<French>path6</French>
</Video>
</media>
进入这个:
<?xml version="1.0" encoding="utf-8" ?>
<media>
<Video name="Gladiator">
<English>path1</English>
<Chinese>path2</Cinese>
<French>path3</French>
</Video>
<Video name="Transformers">
<English>path4</English>
<Chinese>path5</Cinese>
<French>path6</French>
</Video>
<Video name="Terminator">
<English>path7</English>
<Chinese>path8</Cinese>
<French>path9</French>
</Video>
</media>
如果我打开一个xmlTextwriter,创建一个新元素标签,添加属性并结束元素标签;它删除文本文件中的所有先前数据:/
答案 0 :(得分:3)
如果您使用 XmlTextWriter 类,则需要在使用XmlTextWriter之前读取xml文件以获取内容。 XmlTextWriter不会加载xml文件的内容。这就是为什么你以前的所有数据都消失了。
XmlDocument 是添加新节点的最简单方法。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filePath);
XmlNode node = FindYourNode(xmlDoc); //Method to find the specific node
node.AppendChild(yourNewXmlNode);
xmlDoc.Save(filePath);
如果您的xml文件很小,则 XmlDocument 类完全正常。但是如果你必须操纵一个大的xml文件,我建议使用另一个类,因为XmlDocument可能会损害你的性能。
在这种情况下,我会使用 XmlReader 和 XmlWriter 的组合。
答案 1 :(得分:0)
我会沿着这些方向做点什么:
mediaElement.AppendChild(xmlDocument.CreateElement("Video"))
其中mediaElement是对&lt; media /&gt;的引用。 element和xmlDocument属于XmlDocument类型。