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. Html parser
Forum Updated to NodeBB v4.3 + New Features

Html parser

Scheduled Pinned Locked Moved Solved General and Desktop
20 Posts 9 Posters 3.8k Views 5 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
    #2

    A simple search on the forums gives this.
    What do you want to achieve? Your question is pretty vague...

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

    1 Reply Last reply
    5
    • S satyanarayana143

      Hi friends,

      I want to parse html file in Qt anybody give example or solution .

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #3

      @satyanarayana143
      I doubt you will find any robust, complete HTML parser for Qt. As @JohanSolo says, it would be better to describe just what you need to achieve, and why.

      S 1 Reply Last reply
      0
      • JonBJ JonB

        @satyanarayana143
        I doubt you will find any robust, complete HTML parser for Qt. As @JohanSolo says, it would be better to describe just what you need to achieve, and why.

        S Offline
        S Offline
        satyanarayana143
        wrote on last edited by
        #4

        @JonB

        i want get href values in html files in qt

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #5

          Hi,

          If it's only to get the URL contained in the href attribute then using a regex like href="(.*)" with QRegularExpression should do the job.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          S 1 Reply Last reply
          4
          • SGaistS SGaist

            Hi,

            If it's only to get the URL contained in the href attribute then using a regex like href="(.*)" with QRegularExpression should do the job.

            S Offline
            S Offline
            satyanarayana143
            wrote on last edited by
            #6

            @SGaist said in Html parser:

            href="(.*)"

            can you give some example how to extract href with regex

            <html>
            <head><title>Index of /satfiles/</title></head>
            <body bgcolor="white">
            <h1>Index of /satfiles/</h1><hr><pre><a href="../">../</a>
            <a href="test1.txt">test1.txt</a> 28-Oct-2018 08:08 14
            <a href="test2.txt">test2.txt</a> 28-Oct-2018 08:09 13
            <a href="yazmifiletest.ts">yazmifiletest.ts</a> 28-Oct-2018 08:09 30
            </pre><hr></body>
            </html>

            jsulmJ K 2 Replies Last reply
            0
            • S satyanarayana143

              @SGaist said in Html parser:

              href="(.*)"

              can you give some example how to extract href with regex

              <html>
              <head><title>Index of /satfiles/</title></head>
              <body bgcolor="white">
              <h1>Index of /satfiles/</h1><hr><pre><a href="../">../</a>
              <a href="test1.txt">test1.txt</a> 28-Oct-2018 08:08 14
              <a href="test2.txt">test2.txt</a> 28-Oct-2018 08:09 13
              <a href="yazmifiletest.ts">yazmifiletest.ts</a> 28-Oct-2018 08:09 30
              </pre><hr></body>
              </html>

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #7

              @satyanarayana143 http://doc.qt.io/qt-5/qregularexpression.html

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

              1 Reply Last reply
              4
              • mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #8

                Hi
                Something like

                QString html = R"(
                        <html>
                        <head><title>Index of /satfiles/</title></head>
                        <body bgcolor="white">
                        <h1>Index of /satfiles/</h1><hr><pre><a href="../">../</a>
                        <a href="test1.txt">test1.txt</a> 28-Oct-2018 08:08 14
                        <a href="test2.txt">test2.txt</a> 28-Oct-2018 08:09 13
                        <a href="yazmifiletest.ts">yazmifiletest.ts</a> 28-Oct-2018 08:09 30
                        </pre><hr></body>
                        </html>)";
                
                QString regex = R"(href="([^"]*))";
                ----
                 QRegularExpression re(regex);
                  QRegularExpressionMatchIterator i = re.globalMatch(html);
                  while (i.hasNext()) {
                    QRegularExpressionMatch match = i.next();
                    qDebug().noquote() << match.captured();
                  }
                
                

                Gets you

                href="../
                href="test1.txt
                href="test2.txt
                href="yazmifiletest.ts
                

                you can use
                https://regexr.com/
                to tweak the expression to match exactly.

                S ManiRonM 2 Replies Last reply
                3
                • S satyanarayana143

                  @SGaist said in Html parser:

                  href="(.*)"

                  can you give some example how to extract href with regex

                  <html>
                  <head><title>Index of /satfiles/</title></head>
                  <body bgcolor="white">
                  <h1>Index of /satfiles/</h1><hr><pre><a href="../">../</a>
                  <a href="test1.txt">test1.txt</a> 28-Oct-2018 08:08 14
                  <a href="test2.txt">test2.txt</a> 28-Oct-2018 08:09 13
                  <a href="yazmifiletest.ts">yazmifiletest.ts</a> 28-Oct-2018 08:09 30
                  </pre><hr></body>
                  </html>

                  K Offline
                  K Offline
                  koahnig
                  wrote on last edited by
                  #9

                  @satyanarayana143

                  Try out with the QRegularExpression example

                  In contrast to the single line version of the QRegExp example you can test short text sections.

                  Vote the answer(s) that helped you to solve your issue(s)

                  1 Reply Last reply
                  2
                  • mrjjM mrjj

                    Hi
                    Something like

                    QString html = R"(
                            <html>
                            <head><title>Index of /satfiles/</title></head>
                            <body bgcolor="white">
                            <h1>Index of /satfiles/</h1><hr><pre><a href="../">../</a>
                            <a href="test1.txt">test1.txt</a> 28-Oct-2018 08:08 14
                            <a href="test2.txt">test2.txt</a> 28-Oct-2018 08:09 13
                            <a href="yazmifiletest.ts">yazmifiletest.ts</a> 28-Oct-2018 08:09 30
                            </pre><hr></body>
                            </html>)";
                    
                    QString regex = R"(href="([^"]*))";
                    ----
                     QRegularExpression re(regex);
                      QRegularExpressionMatchIterator i = re.globalMatch(html);
                      while (i.hasNext()) {
                        QRegularExpressionMatch match = i.next();
                        qDebug().noquote() << match.captured();
                      }
                    
                    

                    Gets you

                    href="../
                    href="test1.txt
                    href="test2.txt
                    href="yazmifiletest.ts
                    

                    you can use
                    https://regexr.com/
                    to tweak the expression to match exactly.

                    S Offline
                    S Offline
                    satyanarayana143
                    wrote on last edited by
                    #10

                    @mrjj

                    thakk you for giving solution i want like this only i have solved my problem.

                    1 Reply Last reply
                    0
                    • mrjjM mrjj

                      Hi
                      Something like

                      QString html = R"(
                              <html>
                              <head><title>Index of /satfiles/</title></head>
                              <body bgcolor="white">
                              <h1>Index of /satfiles/</h1><hr><pre><a href="../">../</a>
                              <a href="test1.txt">test1.txt</a> 28-Oct-2018 08:08 14
                              <a href="test2.txt">test2.txt</a> 28-Oct-2018 08:09 13
                              <a href="yazmifiletest.ts">yazmifiletest.ts</a> 28-Oct-2018 08:09 30
                              </pre><hr></body>
                              </html>)";
                      
                      QString regex = R"(href="([^"]*))";
                      ----
                       QRegularExpression re(regex);
                        QRegularExpressionMatchIterator i = re.globalMatch(html);
                        while (i.hasNext()) {
                          QRegularExpressionMatch match = i.next();
                          qDebug().noquote() << match.captured();
                        }
                      
                      

                      Gets you

                      href="../
                      href="test1.txt
                      href="test2.txt
                      href="yazmifiletest.ts
                      

                      you can use
                      https://regexr.com/
                      to tweak the expression to match exactly.

                      ManiRonM Offline
                      ManiRonM Offline
                      ManiRon
                      wrote on last edited by
                      #11

                      @mrjj said in Html parser:

                      R

                      sir in this what does R mean for in the QString html

                      aha_1980A 1 Reply Last reply
                      0
                      • ManiRonM ManiRon

                        @mrjj said in Html parser:

                        R

                        sir in this what does R mean for in the QString html

                        aha_1980A Offline
                        aha_1980A Offline
                        aha_1980
                        Lifetime Qt Champion
                        wrote on last edited by
                        #12

                        @ManiRon: https://solarianprogrammer.com/2011/10/16/cpp-11-raw-strings-literals-tutorial

                        Qt has to stay free or it will die.

                        ManiRonM 1 Reply Last reply
                        1
                        • aha_1980A aha_1980

                          @ManiRon: https://solarianprogrammer.com/2011/10/16/cpp-11-raw-strings-literals-tutorial

                          ManiRonM Offline
                          ManiRonM Offline
                          ManiRon
                          wrote on last edited by
                          #13

                          @aha_1980 said in Html parser:

                          https://solarianprogrammer.com/2011/10/16/cpp-11-raw-strings-literals-tutorial

                          error: 'R' was not declared in this scope
                          QString qHtml = R"(<button type="button">Click Me!</button>)";
                          ^

                          mrjjM 1 Reply Last reply
                          0
                          • ManiRonM ManiRon

                            @aha_1980 said in Html parser:

                            https://solarianprogrammer.com/2011/10/16/cpp-11-raw-strings-literals-tutorial

                            error: 'R' was not declared in this scope
                            QString qHtml = R"(<button type="button">Click Me!</button>)";
                            ^

                            mrjjM Offline
                            mrjjM Offline
                            mrjj
                            Lifetime Qt Champion
                            wrote on last edited by
                            #14

                            @ManiRon
                            Hi
                            Code seems fine - so it must be compiler version.

                            Is it an older Qt / Compiler ?

                            Its a c++ 11 feature with R (raw strings)

                            ManiRonM 1 Reply Last reply
                            1
                            • mrjjM mrjj

                              @ManiRon
                              Hi
                              Code seems fine - so it must be compiler version.

                              Is it an older Qt / Compiler ?

                              Its a c++ 11 feature with R (raw strings)

                              ManiRonM Offline
                              ManiRonM Offline
                              ManiRon
                              wrote on last edited by
                              #15

                              @mrjj its Qt 5.5

                              mrjjM 1 Reply Last reply
                              0
                              • ManiRonM ManiRon

                                @mrjj its Qt 5.5

                                mrjjM Offline
                                mrjjM Offline
                                mrjj
                                Lifetime Qt Champion
                                wrote on last edited by
                                #16

                                @ManiRon
                                Hi
                                Can you try to add
                                CONFIG += c++11
                                in your .pro file
                                then run qmake and rebuild all (from menu) and see if it accepts it then.

                                ManiRonM 2 Replies Last reply
                                0
                                • mrjjM mrjj

                                  @ManiRon
                                  Hi
                                  Can you try to add
                                  CONFIG += c++11
                                  in your .pro file
                                  then run qmake and rebuild all (from menu) and see if it accepts it then.

                                  ManiRonM Offline
                                  ManiRonM Offline
                                  ManiRon
                                  wrote on last edited by
                                  #17

                                  @mrjj said in Html parser:

                                  CONFIG += c++11

                                  i will check and say sir

                                  1 Reply Last reply
                                  0
                                  • mrjjM mrjj

                                    @ManiRon
                                    Hi
                                    Can you try to add
                                    CONFIG += c++11
                                    in your .pro file
                                    then run qmake and rebuild all (from menu) and see if it accepts it then.

                                    ManiRonM Offline
                                    ManiRonM Offline
                                    ManiRon
                                    wrote on last edited by ManiRon
                                    #18

                                    @mrjj

                                    1. It worked sir
                                    2. But i am trying to create a button as you can see in the previous code its just displaying the text click me and not the button in the HTML file
                                    3. I know that in the list of attribute supported by QT <button> tag is not there whether we can make QT to make work on this
                                    mrjjM 1 Reply Last reply
                                    0
                                    • ManiRonM ManiRon

                                      @mrjj

                                      1. It worked sir
                                      2. But i am trying to create a button as you can see in the previous code its just displaying the text click me and not the button in the HTML file
                                      3. I know that in the list of attribute supported by QT <button> tag is not there whether we can make QT to make work on this
                                      mrjjM Offline
                                      mrjjM Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on last edited by mrjj
                                      #19

                                      @ManiRon
                                      Hi
                                      Super. so was just c+11 support.
                                      The QT widgets cannot draw html Buttons so if you
                                      view them in textEdit/Browser no buttons can be shown.

                                      I know no easy way to have buttons, but you can try with
                                      Qt WebEngine
                                      instead and see if it likes it.

                                      ManiRonM 1 Reply Last reply
                                      1
                                      • mrjjM mrjj

                                        @ManiRon
                                        Hi
                                        Super. so was just c+11 support.
                                        The QT widgets cannot draw html Buttons so if you
                                        view them in textEdit/Browser no buttons can be shown.

                                        I know no easy way to have buttons, but you can try with
                                        Qt WebEngine
                                        instead and see if it likes it.

                                        ManiRonM Offline
                                        ManiRonM Offline
                                        ManiRon
                                        wrote on last edited by ManiRon
                                        #20

                                        @mrjj as i have not worked on it any sample will be available for Qtwebengine which can be help full to understand it

                                        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