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. Reading a xml file and parsing it
Forum Updated to NodeBB v4.3 + New Features

Reading a xml file and parsing it

Scheduled Pinned Locked Moved Solved General and Desktop
18 Posts 3 Posters 5.1k Views
  • 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.
  • A Aashu10

    Hey!

    I do not want to write anything on the XML, I need to fetch the attribute of that tag so that I can use it for later. Can you please show me some example which is related to my case. because every where I see I get examples of XmlStreamRreader.

    RatzzR Offline
    RatzzR Offline
    Ratzz
    wrote on last edited by Ratzz
    #5

    @Aashu10
    You can read this way.

    qxmlstreamreader *xmlreader;
    
    while(!xmlreader->atEnd())
       {
           if(xmlreader->isStartElement())
           {
               if(xmlreader->name()== "MAIN_HEADER")
               {
                   xmlreader->readnext();
               }
       		else  if(xmlreader->name() == "HEADER")
       		{
                 while(!xmlreader->atEnd())
                   {
                      if(xmlreader->isendelement())
                       {
                         if(xmlreader->name() == "HEADER")
                          {
                            xmlreader->readNext();
                            break;
                           }
                           xmlreader->readNext();
                       }
                      else if(xmlreader->isCharacters())
                       {
                          xmlreader->readnext();
                       }
                      else if(xmlreader->isStartElement())
                       {
                         if(xmlreader->name() == "TITLE")
                           {            
                             xmlreader->readNext();
                           }
                          else if(xmlreader->name() == "AUTHOR")
                          {
                           xmlreader->readNext();
                          }
                          else if(xmlreader->name() == "NAME")
       		           {
       		            qstring name=xmlReader->readElementText()) ;// found
       		           }
       		          .................
       		
                       else
                       {
                         xmlreader->readNext();
                       }
       			}
       	
           else if(xmlreader->isEndElement())
           {
               if(xmlreader->name() == "MAIN_HEADER")
               {
                   break;
               }
               xmlreader->readNext();
           }
           else
           {
               xmlreader->readnext();
           }
       }
    
    }		
    
    

    --Alles ist gut.

    1 Reply Last reply
    1
    • A Offline
      A Offline
      Aashu10
      wrote on last edited by
      #6

      So i do not have to consider the main tag? <MAIN_HEADER>

      RatzzR 1 Reply Last reply
      0
      • A Aashu10

        So i do not have to consider the main tag? <MAIN_HEADER>

        RatzzR Offline
        RatzzR Offline
        Ratzz
        wrote on last edited by
        #7

        @Aashu10
        I have EDITed the previous post.

        --Alles ist gut.

        1 Reply Last reply
        1
        • A Offline
          A Offline
          Aashu10
          wrote on last edited by
          #8

          I am very new to Xmlstreamreader, Please bear with me
          I am getting a error as " C2039: 'readnext' : is not a member of 'QXmlStreamReader'

          RatzzR 1 Reply Last reply
          0
          • A Aashu10

            I am very new to Xmlstreamreader, Please bear with me
            I am getting a error as " C2039: 'readnext' : is not a member of 'QXmlStreamReader'

            RatzzR Offline
            RatzzR Offline
            Ratzz
            wrote on last edited by
            #9

            @Aashu10
            I edited the code in the text editor. So be careful with the spelling.

            xmlReader->readNext();
            

            --Alles ist gut.

            1 Reply Last reply
            1
            • A Offline
              A Offline
              Aashu10
              wrote on last edited by Aashu10
              #10

              Ah there's sytax error, trying real hard to find it out. I'm getting:
              " error: C2181: illegal else without matching if"
              on line:
              else if(xmlreader.isEndElement()). any idea why?

              RatzzR 1 Reply Last reply
              0
              • jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #11

                Probably } before else if(xmlreader.isEndElement()) is missing

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • A Aashu10

                  Ah there's sytax error, trying real hard to find it out. I'm getting:
                  " error: C2181: illegal else without matching if"
                  on line:
                  else if(xmlreader.isEndElement()). any idea why?

                  RatzzR Offline
                  RatzzR Offline
                  Ratzz
                  wrote on last edited by
                  #12

                  @Aashu10
                  We cannot just say if the tag is read or not. it requires careful observations.
                  Best way is to right the read tags back to .xml file to check if it really read or not .

                  --Alles ist gut.

                  1 Reply Last reply
                  1
                  • A Offline
                    A Offline
                    Aashu10
                    wrote on last edited by
                    #13

                    @Ratzz

                    Thanks a ton! i think i am near to solving the problem, i have edited the program. You can see what exactly i am doing. I choosing a xml file from a dropdown. and QT parse that XML file. Now when i choose an xml file. Whole program gets stuck.

                    RatzzR 1 Reply Last reply
                    0
                    • A Aashu10

                      @Ratzz

                      Thanks a ton! i think i am near to solving the problem, i have edited the program. You can see what exactly i am doing. I choosing a xml file from a dropdown. and QT parse that XML file. Now when i choose an xml file. Whole program gets stuck.

                      RatzzR Offline
                      RatzzR Offline
                      Ratzz
                      wrote on last edited by Ratzz
                      #14

                      @Aashu10
                      I have written a test code which works fine for me . Its here .or from here .

                      --Alles ist gut.

                      1 Reply Last reply
                      1
                      • A Offline
                        A Offline
                        Aashu10
                        wrote on last edited by Aashu10
                        #15

                        Thanks alot! still can't figure out why does my gui hangs.
                        Can you please tell me what does String holds in:
                        "QString name=xmlreader.readElementText(); // found"

                        I had a debug there to check, unfortunately my gui is hanging

                        RatzzR 1 Reply Last reply
                        0
                        • A Aashu10

                          Thanks alot! still can't figure out why does my gui hangs.
                          Can you please tell me what does String holds in:
                          "QString name=xmlreader.readElementText(); // found"

                          I had a debug there to check, unfortunately my gui is hanging

                          RatzzR Offline
                          RatzzR Offline
                          Ratzz
                          wrote on last edited by Ratzz
                          #16

                          Did you try the test code?
                          QString name holds the name john
                          Download this zip file. Build your project and browse for the XML.xml file to find the matched name .

                          --Alles ist gut.

                          1 Reply Last reply
                          1
                          • A Offline
                            A Offline
                            Aashu10
                            wrote on last edited by
                            #17

                            Thanks for the help! this works too! But i think DOM is turning out to be simpler, i really appriciate your help. don't exactly know how to accept your answer on this forum.

                            RatzzR 1 Reply Last reply
                            0
                            • A Aashu10

                              Thanks for the help! this works too! But i think DOM is turning out to be simpler, i really appriciate your help. don't exactly know how to accept your answer on this forum.

                              RatzzR Offline
                              RatzzR Offline
                              Ratzz
                              wrote on last edited by Ratzz
                              #18

                              @Aashu10
                              There is nothing like "answer" for particular question . You can Upvote the answer(s) that helped you to solve the issue.
                              Once your problem is solved please use the Topic Tools button to mark as Solved.
                              Thank you!

                              --Alles ist gut.

                              1 Reply Last reply
                              1

                              • Login

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