1

XElementをXDocumentに追加しようとすると、次のエラーが発生します。

タイプ'System.InvalidOperationException'の例外がSystem.Xml.Linq.ni.dllで発生しましたが、ユーザーコードでは処理されませんでした

私のコードは次のとおりです。

Imports System.Xml
Imports System.Xml.Linq
Imports System.IO.IsolatedStorage
Imports System.IO

Public Sub SaveRecord()
        Using myIsolatedStorage As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()

            Dim doc As XDocument
            Using isoStore1 As IsolatedStorageFile = _
                    IsolatedStorageFile.GetUserStoreForApplication()

                Using isoStream1 As IsolatedStorageFileStream = New IsolatedStorageFileStream("file.xml", FileMode.Open, isoStore1)
                    doc = XDocument.Load(isoStream1)

                    MessageBox.Show(doc.ToString)
                    'This gives the right xml-code


                    doc.Add(New XElement("NewChild", "new content")) 'This is where the error takes place
                    MessageBox.Show(doc.ToString)
                    Using isoStore As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()

                        Using isoStream As IsolatedStorageFileStream = New IsolatedStorageFileStream("file.xml", FileMode.Create, isoStore)
                            doc.Save(isoStream)
                        End Using
                    End Using
                End Using
            End Using

        End Using

        Exit Sub

    End Sub

デバッガーが行に入るとエラーが表示されますdoc.Add(New XElement("NewChild", "new content"))

このエラーの原因とその解決方法を誰かに説明してもらえますか?

4

1 に答える 1

2

XElementあなたはあなたXDocumentのルートにあなたを追加する必要があります。

doc.Root.Add(New XElement("NewChild", "new content"))

これをドキュメントに直接追加すると、ルートの代わりにアフターxmlを追加するため、ルートが2つになるため、無効になります。XElementXDocument

于 2013-02-24T22:14:09.757 に答える