QT使用 QDomElement 读写 xml 文件. 或文件结构相同的文本皆可以.
已经封装起来了.可以直接使用. 这是头文件.
下载链接: https://download.csdn.net/download/yuansacsdn/11852317
#include <QSharedPointer>
#include <QtXml/QDomElement>
class QString;
class ParserConifg
{
public:
ParserConifg();
~ParserConifg();
public:
virtual bool load();
virtual bool save();
/// \brief: 设置当前配置文件的路径文件名
bool setFileName(const QString &filePath);
/// \brief: 读配置文件
bool readFile();
/// \brief: 获得父节点下的某个子节点
/// \param: node 父节点
/// \param: childNodeName 子节点名字
/// \param: childeNode 获得子节点
bool getChildElement(const QDomElement &node, const QString &childNodeName, QDomElement &childNode);
/// \brief: 获得节点下某个子节点的一个属性值
/// \param: node 父节点
/// \param: childNodeName 子节点名字
/// \param: attribName 属性名字
/// \param: attribValue 属性值
bool getChildAttribValue(const QDomElement &node, const QString &childNodeName,
const QString &attribName, QString &attribValue);
/// \brief: 获得当前节点下的属性值
/// \param: node 操作节点
/// \param: attribName 属性名字
/// \param: attribValue 属性值
bool getAttribValue(const QDomElement &node, const QString &attribName, QString &attribValue);
/// \brief: 获得节点下某个子节点的中间值
/// \param: node 父节点
/// \param: elementName 子节点名字
/// \param: elementValue 中间值
bool getChildElementValue(const QDomElement &node, const QString &elementName, QString &elementValue);
/// \brief: 获得当前节点的中间值
/// \param: node 操作节点
/// \param: elementValue 中间值
bool getElementValue(const QDomElement &node, QString &elementValue);
/// \brief: 创建新的配置文件
/// \brief: rootName 根节点
bool createNewConfig(const QString &rootName);
/// \brief: 添加一个子节点
/// \param: node 父节点
/// \param: nodeName 子节点名
QDomElement addElement(QDomElement &node, const QString &nodeName);
/// \brief: 为当前节点添加属性
/// \param: node 操作节点
/// \param: nodeValueName ,nodeValue 属性名字和属性值
bool setAttribValue(QDomElement &node, const QString &nodeValueName, const QString &nodeValue);
/// \brief: 为当前节点添加中间值
/// \param: node 操作节点
/// \param: elementValue 中间值
bool setElementValue(QDomElement &node, const QString &elementValue);
/// \brief: 保存配置文件
bool saveFile();
public:
QDomElement readRootNode_; // 读配置的的根节点
QDomElement saveRootNode_; // 写配置文件的根节点
private:
class PImpl;
QSharedPointer<PImpl> impl_;
};