qt-xml-生成/解析
来源:互联网 发布:爆吧软件 编辑:程序博客网 时间:2024/05/07 05:02
生成:
QString s1("ssssssssss");
QString s2("wwwwwwwwww");
QString s3("1111111111");
QString s4("text");
QString s5("处理成功");
QDomDocument doc("myxml");
QDomElement root = doc.createElement("xml");
doc.appendChild(root);
QDomElement ToUser = doc.createElement("ToUserName");
root.appendChild(ToUser);
QDomText ToUsername = doc.createTextNode(s2);
ToUser.appendChild(ToUsername);
QDomElement FromUser = doc.createElement("FromUserName");
root.appendChild(FromUser);
QDomText FromUsername = doc.createTextNode(s1);
FromUser.appendChild(FromUsername);
QDomElement CreateTime = doc.createElement("CreateTime");
root.appendChild(CreateTime);
QDomText time = doc.createTextNode(s3);
CreateTime.appendChild(time);
QDomElement MsgType = doc.createElement("MsgType");
root.appendChild(MsgType);
QDomText type = doc.createTextNode(s4);
MsgType.appendChild(type);
QDomElement Content = doc.createElement("Content");
root.appendChild(Content);
QDomText text = doc.createTextNode(s5);
Content.appendChild(text);
QString xml = doc.toString();
qDebug()<<"xml:"<<xml;
解析:
QDomDocument doc; //新建QDomDocument类对象
int row = 0, column = 0;
QString error = "";
if (!doc.setContent(QString(data),false,&error,&row,&column))
{
qDebug() << "failed:" << row << "---" << column <<":" <<error;
return;
}
//解析各个接点,具体代码如下:
QDomElement docElem = doc.documentElement(); //返回根元素
QDomNode n = docElem.firstChild(); //返回根节点的第一个子节点
//**************************************************************************************************************将元素记录
QString ToUserName;//接收方
QString FromUserName;//发送方
QString CreateTime;//创建时间
QString MsgType;//类型
QString Event;//事件
QString EventKey;//命令码
QString Content;//文本消息内容
QString MsgId;//消息id,64位整型
QString name;
while(!n.isNull())
{ //如果节点不为空
if (n.isElement()) //如果节点是元素
{
QDomElement e = n.toElement(); //将其转换为元素
//qDebug()<<"返回元素标记:"<<qPrintable(e.tagName())<<"元素属性的值:"<<qPrintable(e.text());
name=qPrintable(e.tagName());
QDomNodeList list = e.childNodes(); //获得元素e的所有子节点的列表
for(int i=0; i<list.count(); i++) //遍历该列表
{
QDomNode node = list.at(i);
if(node.isElement())
qDebug()<<" qPrintable(node.toElement().tagName()):"<<qPrintable(node.toElement().tagName())
<<"qPrintable(node.toElement().text())"<<qPrintable(node.toElement().text());
}
if(name.compare("ToUserName")==0){ToUserName=qPrintable(e.text());}
else if(name.compare("FromUserName")==0){FromUserName=qPrintable(e.text());}
else if(name.compare("CreateTime")==0){CreateTime=qPrintable(e.text());}
else if(name.compare("MsgType")==0){MsgType=qPrintable(e.text());}
else if(name.compare("Event")==0){Event=qPrintable(e.text());}
else if(name.compare("EventKey")==0){EventKey=qPrintable(e.text());}
else if(name.compare("Content")==0){Content=qPrintable(e.text());}
else if(name.compare("MsgId")==0){MsgId=qPrintable(e.text());}
else{qDebug()<<"error:1004";}
}
n = n.nextSibling(); //下一个兄弟节点
0 0
- qt-xml-生成/解析
- Qt 生成 xml 文件
- Qt生成XML文件
- Qt生成XML文件
- Qt解析xml
- qt xml 解析
- qt解析xml文件
- Qt 解析XML文件
- Qt中解析xml
- qt xml解析
- Qt XML数据解析
- QT----解析XML文件
- QT解析XML文件
- Qt XML文件解析
- XML生成与解析
- xml 生成与解析
- 解析XML生成菜单
- dom4j生成/解析XML
- Oracle 树操作(select…start with…connect by…prior)
- ftp简单实现的解读
- mysql5.7安装
- Torch-nn学习:Tabel Layer
- 写博客,笔记应该放在挂在那些地方
- qt-xml-生成/解析
- GUI编程(二)
- UITableView didSelected与UITapGesture 冲突解决
- 串口中怎样接收一个完整数据包的解析
- 前端js与服务器联调出现的sessionId变更的问题
- 声明的意义
- C语言OJ项目参考(2747) 进制转换
- 线程(一)
- Android Activity启动流程