我正在开发一个Windows应用商店应用程序(8.1),我对XML编写感到困惑。我的代码以正确的格式成功创建了XML文件。但是,我不知道如何向此xml文件添加新数据(新歌曲)以及如何编辑现有的xml文件。长话短说,这是我目前的代码:
StorageFolder sf = await ApplicationData.Current.LocalFolder.CreateFolderAsync("UserInputData", CreationCollisionOption.OpenIfExists);
StorageFile st = await sf.CreateFileAsync("MusicData.xml", CreationCollisionOption.OpenIfExists);
XmlDocument xmlDoc = new XmlDocument();
var content = await FileIO.ReadTextAsync(st);
if (!string.IsNullOrEmpty(content))
{
xmlDoc.LoadXml(content);
}
else
{
var root = xmlDoc.CreateElement("music");
xmlDoc.AppendChild(root);
var childTag = xmlDoc.CreateElement("song");
root.AppendChild(childTag);
var childertag = xmlDoc.CreateElement("name");
childTag.AppendChild(childertag);
var childertag2 = xmlDoc.CreateElement("singer");
childTag.AppendChild(childertag2);
var childertag3 = xmlDoc.CreateElement("chords");
childTag.AppendChild(childertag3);
}
await xmlDoc.SaveToFileAsync(st);
可以使用不存在的xml文件,我只需创建root并向此根添加新元素,如下所示:
XmlText textname = xmlDoc.CreateTextNode("test12");
childertag.AppendChild(textname);
我需要帮助的是,将新数据添加到已存在的xml文件中。
感谢您的反馈。
我的问候......
答案 0 :(得分:1)
您需要选择现有元素,而不是创建新元素,例如:
var existingRoot = xmlDoc.SelectSingleNode("//music");
然后,您可以采用与添加新<song>
元素完全相同的方式:
var childTag = xmlDoc.CreateElement("song");
existingRoot.AppendChild(childTag);
var childertag = xmlDoc.CreateElement("name");
childTag.AppendChild(childertag);
var childertag2 = xmlDoc.CreateElement("singer");
childTag.AppendChild(childertag2);
var childertag3 = xmlDoc.CreateElement("chords");
childTag.AppendChild(childertag3);