我正在製作簡單的繪畫程序,並且在該程序中用戶能夠將他們的工作保存到XML文件中;這些XML文件有兩種不同的模式。讀取不同的XML文件
當談到加載時,我希望我的程序能夠理解這兩種模式。也就是說,程序在不知道文件使用哪個模式的情況下讀取文件。
我應該如何處理這個問題?
我正在製作簡單的繪畫程序,並且在該程序中用戶能夠將他們的工作保存到XML文件中;這些XML文件有兩種不同的模式。讀取不同的XML文件
當談到加載時,我希望我的程序能夠理解這兩種模式。也就是說,程序在不知道文件使用哪個模式的情況下讀取文件。
我應該如何處理這個問題?
我只是嘗試閱讀強制執行一個模式,如果它無法驗證回落到另一個模式。
我想說這取決於您用來讀取XML文件的XML系統。
如果您的XML解析器足夠靈活,請檢查解析樹中的差異,以幫助指示使用了哪個模式。 (例如,如果它們的根元素命名不同,則可以使用它)
如果您的解析器不是那麼靈活,我會推薦ptyx提供的答案,它正在嘗試一個架構並退回到另一個如果第一個失敗。
如果這些文件在開始時有DOCTYPE
,這很簡單。因此,要求XML文件具有DOCTYPE
。