2013-09-30 32 views
0

我存儲在InternalFielStorage作爲現有的XML ..追加新的XElement增加了一個完整的XML到現有的XML在流

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Root> 
    <Books> 
     <Author name="Sam" /> 
    </Books> 
</Root> 

我想追加「作者」節點下的「標題」節點但是保存的時候,我看到一個完全地新的XML添加到現有的XML作爲..

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Root> 
    <Books> 
     <Author name="Sam" /> 
    </Books> 
</Root> 
<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Root> 
    <Books> 
     <Author name="Sam" />   
     <Title>Test</Title> 
    </Books> 
</Root> 

代碼我使用這個..

 
using (IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication()) 
    { 
    using (IsolatedStorageFileStream myStream = new IsolatedStorageFileStream(App.FileName, FileMode.Open, FileAccess.ReadWrite, myStore)) 
    { 
      XDocument _xDoc = XDocument.Load(myStream); 
      XElement srcTree = new XElement("Title", "test"); 
      _xDoc.Element("Root").Element("Books").Add(new XElement(srcTree)); 
      _xDoc.Save(myStream); 

問題:
1.如何避免將新的XML附加到現有的XML上?
2.我怎樣才能使「標題」標籤是<「作者姓名=」薩姆「>標籤下?

在此先感謝。

回答

1

當加載流,位置設置爲文件的最後一個字節 - 你需要保存文件之前復位位置

myStream.Position = 0; 
_xDoc.Save(myStream); 

做到這一點參見文檔here

+0

哇。這就像一個魅力。謝謝。 – Sam