Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [Solved]XML readproblems
Forum Updated to NodeBB v4.3 + New Features

[Solved]XML readproblems

Scheduled Pinned Locked Moved General and Desktop
15 Posts 2 Posters 8.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • JohanSoloJ Offline
    JohanSoloJ Offline
    JohanSolo
    wrote on last edited by JohanSolo
    #4

    First of all in the XML example you're giving there is no element which name is "en_class".
    Then, what if you add these lines after you loop :

    if ( s.hasError() )
    {
      qDebug() << s.errorString();
      qDebug() << "at line " << s.lineNumber() << ", column " << s.columnNumber();
      qDebug() << "Error type " << s.error();
    }
    

    `They did not know it was impossible, so they did it.'
    -- Mark Twain

    1 Reply Last reply
    0
    • T Offline
      T Offline
      toho71
      wrote on last edited by
      #5

      thank you
      there are elements but they are further down in the xml file

      Here is the result after your rows
      "Premature end of document."
      at line 1 , column 0
      Error type 4

      I will search this error but if you have an answer to it I will be happy

      1 Reply Last reply
      0
      • JohanSoloJ Offline
        JohanSoloJ Offline
        JohanSolo
        wrote on last edited by JohanSolo
        #6

        Look at this: it seems that your input is not complete when you are trying to parse the XML document.

        `They did not know it was impossible, so they did it.'
        -- Mark Twain

        1 Reply Last reply
        0
        • T Offline
          T Offline
          toho71
          wrote on last edited by
          #7

          Thanks
          I'll Try this tomorrow.

          I thought this would be enough
          @QXmlStreamReader s(&in);@

          1 Reply Last reply
          0
          • JohanSoloJ Offline
            JohanSoloJ Offline
            JohanSolo
            wrote on last edited by JohanSolo
            #8

            Well, it depends what is you in object. If it's a file on disk, I agree with you. However if you're downloading the file for instance with QNetworkAccessManager / QNetworkReply, you better wait till the file is completely downloaded and written.

            I'm pretty sure there's an example of this somewhere...

            Edit : found what I wanted, when I was trying to do such a thing this thread and this one as well helped me.

            `They did not know it was impossible, so they did it.'
            -- Mark Twain

            1 Reply Last reply
            0
            • T Offline
              T Offline
              toho71
              wrote on last edited by
              #9

              I got the file in the same folder as the application on the disk but I will try with another xml file

              1 Reply Last reply
              0
              • T Offline
                T Offline
                toho71
                wrote on last edited by
                #10

                This is the problem

                @s.readElementText();@
                anyone
                pls

                1 Reply Last reply
                0
                • JohanSoloJ Offline
                  JohanSoloJ Offline
                  JohanSolo
                  wrote on last edited by JohanSolo
                  #11

                  The readElementText() method uses readElementText( ErrorOnUnexpectedElement ).
                  As far as I understand this error means that your file (assuming the reading of the full file is OK) doesn't contain valid XML: it tries to find the corresponding EndElement till the end of the file but cannot...

                  Why don't you start trying to read a simple xml, like this one?

                  `They did not know it was impossible, so they did it.'
                  -- Mark Twain

                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    toho71
                    wrote on last edited by
                    #12

                    I did that with a simple xml file and I tried your exampel to but same error.
                    This is a big problem now.

                    1 Reply Last reply
                    0
                    • JohanSoloJ Offline
                      JohanSoloJ Offline
                      JohanSolo
                      wrote on last edited by
                      #13

                      It means that you're using the readElementText in a wrong way... I'm afraid I cannot help you much more than I already tried. I'm not a big QXmlStreamReader user.

                      `They did not know it was impossible, so they did it.'
                      -- Mark Twain

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        toho71
                        wrote on last edited by
                        #14

                        thank you for your help.
                        Is it easier to use sax or dom to get the values in the xml

                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          toho71
                          wrote on last edited by
                          #15

                          Got it to work

                          @void MainWindow::init()
                          {

                          //QFile file&#40;"C:/testprojekt/filesXML/cache.xml"&#41;;
                          //QFile file&#40;"C:/testprojekt/filesXML/parts.xml"&#41;;
                           QFile file&#40;"C:/testprojekt/filesXML/simple.xml"&#41;;
                          if (file.exists())
                              qDebug() << file.fileName();
                          else
                              qDebug() << "NO " + file.fileName();
                          
                          file.open(QIODevice::ReadOnly);
                          
                              QXmlStreamReader xml_stream(&file);
                              while (!xml_stream.atEnd() && !xml_stream.hasError())
                              {
                                  if (xml_stream.isStartElement() && xml_stream.name() =="description")
                          
                                       ui->textBrowser->append( + "<" + xml_stream.name().toString()
                                                               + ">" + xml_stream.readElementText());
                          
                                  xml_stream.readNext();
                              }
                          
                           ui->textBrowser->append("-------------------------");
                          
                          
                           xml_stream.clear();
                           file.close();
                          

                          }@

                          1 Reply Last reply
                          0

                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved