@AlexSer

Как распарсить Xml данные принятые через serial в QT?

Через Эмулятор передаю вот такую строку в ком порт
<FileIndex>
    <Name>lol.xml</Name>
    <Size>0</Size>
    <Path>E:/test/build-untitled-Desktop_Qt_5_4_1_MinGW_32bit-Release/lol.xml</Path>
    <Created>Сб мар 14 21:55:37 2015</Created>
    <Name>Makefile</Name>
    <Size>20399</Size>
    <Path>E:/test/build-untitled-Desktop_Qt_5_4_1_MinGW_32bit-Release/Makefile</Path>
    <Created>Чт мар 12 19:00:45 2015</Created>
</FileIndex>


Вот код приема и парсинга:
xmlReader=new QXmlStreamReader();

    QByteArray byte;
    byte=serialPort->readAll();
    QString str=QString(byte);

    //добавляем в xml

    xmlReader->addData(str);
    while(!xmlReader->atEnd())
        {
            QXmlStreamReader::TokenType token = xmlReader->readNext();
            if(token == QXmlStreamReader::StartElement) {
                if(xmlReader->name() == "name") {
                    xmlReader->readNext();
                   qDebug()<<xmlReader->text().toString();
                }
            }
        }


но не происходит вывода, на что надо обратить внимание?
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ответы на вопрос 1
PavelK
@PavelK
Данные через QSerialPort приходят кусками, а не все за раз, так что Вам необходимо сначала все их собрать, а лишь потом парсить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы