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 6.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.
  • RatzzR Offline
    RatzzR Offline
    Ratzz
    wrote on last edited by
    #4
    This post is deleted!
    1 Reply Last reply
    0
    • 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();
             }
         }
      
      }		
      
      
      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.

          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();
              
              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 .

                    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 .

                        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 .

                            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!

                                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