我计划将我的应用程序从Windows移植到Linux,目前我的应用程序使用MSXML进行XML解析。我决定使用Xerces XML解析器来提供跨平台的解决方案。我的代码太大了,我不想为了这个移植的目的接触代码的所有内部部分,因为它可能会破坏一些功能。
有人能给我推荐最好的方法吗。
最佳答案
取决于“内部部分”的含义;一种相当可扩展的方法可以在某些步骤中完成(对应用程序进行测试将是有益的,这样您就可以发现出了问题):
为您使用的所有XML操作创建接口
提供使用MSXML的接口的实现
使所有代码都与接口对话,而不是直接与MSXML对话。如果界面设计得很好,这可能只是一个彻底的查找/替换问题,但可能还需要做更多的工作
现在所有的东西都应该仍然在工作,但是它的好处是它与实际的xml逻辑分离了
为接口提供另一个实现,现在使用Xercesc