|
5Qter豆
本帖最后由 xuyue0401 于 2014-1-8 18:46 编辑
如题,程序运行后,还是解析不了xml格式的字符串,发送<to>test</to>显示还是<to>test</to>,下面贴代码,还请高人指点...
#include "mainwindow.h"#include "ui_mainwindow.h"
#include<QMessageBox>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);}
MainWindow::~MainWindow(){ delete ui;}
void MainWindow::on_pushButton_clicked(){ tcpsocket=new QTcpSocket(this); tcpsocket->connectToHost(ui->lineEdit->text(),ui->lineEdit_2->text().toInt(),QIODevice::ReadWrite); connect(tcpsocket,SIGNAL(readyRead()),this,SLOT(readdata()));
}void MainWindow::readdata(){ ui->textEdit->setText((QString)tcpsocket->readAll());
displayxml();}
void MainWindow::on_pushButton_2_clicked(){ //QString msg; if(ui->textEdit_2->document()->toPlainText().toLatin1()=="") { return; } QString msg =sensorName+":"+ui->textEdit_2->document()->toPlainText(); tcpsocket->write(msg.toLatin1());}void MainWindow::displayxml(){ // ui->textEdit->clear(); QByteArray revmsg=tcpsocket->readAll(); QDomDocument doc; if(!doc.setContent(revmsg)); { return ; } QDomElement docElem = doc.documentElement(); QDomNode n = docElem.firstChild(); while(!n.isNull()) { if(n.isElement()) { QDomElement e = n.toElement(); qDebug()<<qPrintable(e.tagName())<<qPrintable(e.attribute("id")); QDomNodeList list = e.childNodes(); for(int i=0;i<list.count();i++) { QDomNode node = list.at(i); if(node.isElement()) qDebug()<<""<<qPrintable(node.toElement().tagName())<<qPrintable(node.toElement().text()); } } n = n.nextSibling(); }
} |
最佳答案
查看完整内容
好像xml格式比较严格,开头好像要有什么 之类的,你可以上网找个标准的xml文件来看看
|