只是想知道,如果我們可以使用XML序列化/ deserializtion在C#中更新已建xml文件? 另外,如果文件最初只有根節點,我們可以使用子節點更新嗎? (?不管方法)我們可以使用xmlserializer更新現有的xml文件嗎?
3
A
回答
0
更改序列化數據違背了系列化的概念 - 所以XmlSerializer
不支持此。
由於ryadavilli建議你可以使用XmlDocument的或的XDocument手動添加/修改/刪除節點。當您有早期版本的對象的序列化數據並且您想要將這些文檔更新爲新版本時,這非常有用。
如果您當前的對象模型是不是從序列化的數據有所不同,不過,你有沒有考慮反序列化,改變memeory的對象,然後再返回序列化呢?
唯一的其他選擇,我可以想像正在實施IXmlSerializable
,開放既是XmlReader
和XmlWriter
,複製的每個節點,直到到達「插入點」。然後使用XmlSerializer
寫入已更改的數據,之後繼續複製。肯定不是一個開箱即用的解決方案。
至於你的評論中的問題 - XmlSerialization是爲了序列化和反序列化對象,其中XDocument
(xml-linq)允許你手動編寫一個xml文檔。儘管結果可能相同,但它們實質上做了不同的事情,所以哪一個更好取決於你想達到的目標。
相關問題
- 1. 我可以使用msbuild更新非xml配置文件嗎?
- 2. 我們可以使用Open XML格式的Office 2003文件嗎?
- 3. 使用XmlSerializer向現有XML文件添加新元素
- 4. 我們可以通過使用JREBEL熱部署* .xml文件嗎?
- 5. iPhone - 我們可以使用NSXMLParser解析.plist(xml)文件嗎?
- 6. 我們可以使用MSXML比較兩個xml文件嗎?
- 7. 我可以使用linqToXml轉換現有的xml文檔嗎?
- 8. 我們可以更新Angularjs中的JSON文件嗎?
- 9. 我可以創建一個新的XML文件來複制和自動更新現有的XML嗎?
- 10. 我可以通過GooglePlay更新來更新Android清單xml文件嗎
- 11. 我可以通過gradle更新我現有的Eclipse項目嗎?
- 12. 我們可以將MyBatis XML文件導入另一個MyBatis XML文件嗎?
- 13. 我可以使用本地JSON文件更新AWS網站嗎?
- 14. Android,我們可以在不同的xml文件中重複使用id嗎?
- 15. 我們可以使用_id在java中更新mongodb中的文檔嗎?
- 16. 我們可以從xml文件創建一個類嗎?
- 17. 更新C#中的現有XML文件
- 18. 我可以使現有(固定)類實現新的界面嗎?
- 19. 我們可以使用本地主機上的kml文件嗎?
- 20. 我們可以使用php閱讀pdf文件的內容嗎?
- 21. 我可以使用JNDI訪問文件/它們的內容嗎?
- 22. 我們可以更改DispatcherServlet上下文配置文件名嗎?
- 23. 我們可以使用Javascript將HTML表單數據存儲到XML文件嗎?
- 24. 我們可以在大寫的XML中使用序言嗎?
- 25. 我可以更新現有的Amazon S3對象嗎?
- 26. 我可以使用php包含xml文件中的元素嗎?
- 27. 我們可以更改ServerVariables的值嗎?
- 28. 我有一堆cvs。〜文件。我可以刪除它們嗎?
- 29. 我可以更新HDFStore嗎?
- 30. 我們可以更新Amazon S3中特定文件的內容嗎?
如果你有一個序列化後一個XmlDocument或的XDocument,你可以用它玩不過你想要的。請注意,隨機更改會導致稍後反序列化的問題。 – ryadavilli
看到了這一點 - http://www.codeproject.com/Articles/22787/Custom-Serialization-Example? – WorldIsRound
看起來很有希望。還有一個問題,我知道這是主觀的,但哪種方式更好,xmlserialzation或xml-linq,如[here](http://www.i-think22.net/archives/2009/02/27/writing-xml -with-的XElement /)? –