提问者:小点点

追加新的XElement将整个XML添加到流中现有的xml


我有一个现有的XML存储在InternalFielStorage作为…

<?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);

看这里留档