我有一組存儲簡單位數據的XML文件。在每種情況下,文件中的數據結構都不同,存儲不同類型的數據,但始終很簡單。服務器上有一個文件,可以下載和離線更新或在線更新。所以問題在於:如果在用戶更新文件時離線文件被更新,現在他們想要將更改上傳到服務器,會發生什麼?有沒有辦法在.Net中處理這個問題?變化不經常也是值得的。在大多數情況下,將爲重大更改創建一個新文件;我們只是在討論對較舊文件進行較小更新,並且如果發生更新衝突,我想要計劃更新衝突。協調XML更新
例如:
原始文件:
[person]
[name]Bob[/name]
[address]123 Street[/address]
[phone]123-456-7890[/phone]
[/person]
離線所作的改變:
[person]
[name]Bob[/name]
[address]124 Street[/address]
[phone]123-456-7890[/phone]
[/person]
在線所作的改變:
[person]
[name]Bob[/name]
[address]123 Street[/address]
[phone]124-456-7890[/phone]
[/person]
理想的結果:
[person]
[name]Bob[/name]
[address]124 Street[/address]
[phone]124-456-7890[/phone]
[/person]
在某些情況下有將成爲要合併到基本文件中的新元素。我可以選擇構建XML文件,但是我想要的,所以我可以添加一個屬性作爲某種元素ID,如果這有幫助,但我不希望這樣做。
感謝您的幫助。如果還有其他關於如何管理這個不涉及XML的場景的建議,我也會接受這些想法。
我不喜歡這個想法的唯一的事實是,在上面的示例中,它會超過文件大小的兩倍,這對於存儲或操作來說並不好,特別是對於可能永遠不會使用。 – cjbarth 2011-02-24 19:23:40
文件大小是一個約束嗎?如果是這樣,你總是可以得到一個zip庫並壓縮xml文件。大多數情況下,我認爲這是時間與努力的折衷。你可能可以做一個更好的解決方案,但是如果這將會是一個有點用的功能,真的比你花費更多的時間來完成一個簡單有效的解決方案嗎?這當然是我個人的看法;我不知道你的情況,但從所給的信息來看,在這樣的事情上投入大量時間似乎沒有多大意義。祝你好運,無論你決定。 – Zack 2011-02-24 21:53:45
文件大小不是一個限制,就像會有數千個這樣的小搗蛋鬼一樣,並且大小加起來。我已經將它們用於傳輸和存儲。我想我只會寫我自己的'GUID'生成器,它會保持鍵的簡短並使用您建議的方法。如果我只處理每個文件幾十條記錄,則ID衝突應該不成問題。 – cjbarth 2011-02-24 22:24:51