IsolatedStorage に .xml ファイルを作成して更新しようとしていますが、ファイルを読み取ろうとすると XMLException が発生します。これが私のコードです
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
try
{
IsolatedStorageFileStream isoFileStream = isoStore.OpenFile("Favourites.xml", FileMode.Open, FileAccess.ReadWrite);
using (XmlWriter writer = XmlWriter.Create(isoFileStream, settings))
{
XDocument doc = XDocument.Load(isoFileStream);
doc.Root.Add(
new XElement("recipe",
new XAttribute("id", thisRecipe.RecipeId),
new XAttribute("title", thisRecipe.Title),
new XAttribute("youtubeid", thisRecipe.YoutubeId)));
doc.WriteTo(writer);
writer.Flush();
}
}
catch
{
using (IsolatedStorageFileStream isoFileStream =
isoStore.OpenFile("Favourites.xml", FileMode.Create, FileAccess.ReadWrite))
{
using (XmlWriter writer = XmlWriter.Create(isoFileStream, settings))
{
writer.WriteStartDocument();
writer.WriteStartElement("recipes");
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
}
using (IsolatedStorageFileStream isoFileStream =
isoStore.OpenFile("Favourites.xml", FileMode.Open, FileAccess.ReadWrite))
{
using (XmlWriter writer = XmlWriter.Create(isoFileStream, settings))
{
XDocument doc = XDocument.Load(isoFileStream);
doc.Root.Add(
new XElement("recipe",
new XAttribute("id", thisRecipe.RecipeId),
new XAttribute("title", thisRecipe.Title),
new XAttribute("youtubeid", thisRecipe.YoutubeId)));
doc.WriteTo(writer);
writer.Flush();
}
}
}
}
そして、ここに私が作成して更新しようとしているタイプxmlファイルがあります:
<?xml version="1.0" encoding="utf-8"?>
<recipes>
<recipe id="1" title="dessert" youtubeid="eQ1qos__ZrA" />
<recipe id="2" title="starter" youtubeid="5t2uqOkc4NQ"/>
<recipe id="3" title="beverages" youtubeid="PqJsUibxTIk"/>
</recipes>