Qt读xml文件,用QXmlQuery来干这件事很方便。
Qt写xml文件,用QXmlStreamWriter来做挺方便。
其中QXmlQuery需要在工程里添加Qt的XML Patterns模块。
QXmlQuery就是用来执行XQuery语句的,而XQuery是建立在XPath语句之上的,因此也能用 QXmlQuery来执行XPath语句。而执行这些语句,是要在xml文档中执行的。因此QXmlQuery提供SetFocus()这个api来设定 “场地”,以便XQuery或XPath语句在这个“场地”里尽情奔跑。很明显,这个“场地”就是xml文档(QFile file(xmlPath))或xml格式字符串,如字符 串"<Datas><Data><Name>string</Name><Path>string< /Path></Data></Datas>"。将具体的XQuery或XPath语句构造到QString对象中,然后 用QXmlQuery自己的setQuery()将这个QString对象添加到自己欢乐的场地中,最后调用QXmlQuery的 evaluateTo()执行并返回结果。
说一个很常见的XPath语句,求xml文档中某种类型结点的个数,以方便接下来的解析工作。count(//Datas):这个表达式执行后,返回的是xml文档中所有Datas结点的个数。
以上都是一边查看Qt Assistant文档,一边试验总结的,如果你觉得不好,以你自己总结的为准。
下面贴出部分实例代码: