2
新しいxmlドキュメントが見つからない場合は作成した後、新しいxmlドキュメントを作成して新しいエントリを作成します。しかし、それはちょうど私が作成した後新しいXElementを追加すると、保存時にXMLファイル全体が既存のファイルに追加される
を作成し、空白ファイルの最後に完了した新しいXMLファイルを追加しているようだ:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Devices />
を新しいXElementオブジェクトを追加した後:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Devices /><?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Devices>
<device>
<name>blah</name>
<src00>True</src00>
</device>
</Devices>
私のコード.. 。私は同じ結果を持つ2つの異なる方法、両方を追加しようとしました
// Create file if not found
if (!storage.FileExists("settings\\mydevices.xml"))
{
using (IsolatedStorageFileStream stream = storage.OpenFile("settings\\mydevices.xml", FileMode.Create, FileAccess.ReadWrite))
{
XDocument devicesDoc =
new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Devices")
);
System.IO.StreamWriter file = new System.IO.StreamWriter(stream);
devicesDoc.Save(file);
file.Dispose();
}
}
// Add new device
using (IsolatedStorageFileStream stream = storage.OpenFile("settings\\mydevices.xml", FileMode.Open, FileAccess.ReadWrite))
{
XDocument mydevicesXml = XDocument.Load(stream);
//XElement item= new XElement("device",
// new XElement("name",selectedDeviceName),
// new XElement("src00","True")
// );
//mydevicesXml.Descendants("Devices").First().Add(item);
//mydevicesXml.Element("Devices").Add(item);
mydevicesXml.Root.Add(
new XElement("device",
new XElement("name", selectedDeviceName),
new XElement("src00", "True")));
System.IO.StreamWriter file = new System.IO.StreamWriter(stream);
mydevicesXml.Save(file);
file.Dispose();
ありがとうございました – Jason