起因
最近一直做Qt项目,一次偶然的机会了解到了xpath,使用非常方便,便做下总结。
对于xml理解,之前一直认为仅仅是一个标记性语言,有一定的树形结构,对xml的解释分为dom和sax方式,其余并未有更深入的理解。之前项目中有用到xml,主要是解析itunes的xml文件并导入到我们的播放器软件中。1,使用时,采用sax方式逐步解析,发现比较繁琐(一级一级地寻找下一节点,代码耦合性非常强);2,后面又在代码中运用到了json数据,发现相对于xml的这中解析方式,大为方便;3,再后来自己研究了下xpath,发现其实xml也可以很方便~
准备
既然采用xpath,而且我又是采用的c++,于是搜索了下,发现tinyxpath可以很好地满足我的需求。其实之前本来准备用QXmlQuery的,后面发现并不是很好用(可能是我没用好,下次有空可以细细研究下~//TODO,另外在qml中本身就支持xpath,这里暂且不表)。
首先自然是下载tinyxpath,链接http://tinyxpath.sourceforge.net/。下载后配置很简单,直接打开tinyxpath.sln编译就行了。后面运行时注意要define下TIXML_USE_STL;_CRT_SECURE_NO_WARNINGS;(其中CRT_SECURE_NO_WARNINGS,用于消除一个copy相关的error,如果报错vs会提示你去定