Results 1 to 20 of 21

Thread: QT4 DomXPath / DomElementContainer find tag.

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    May 2006
    Posts
    788
    Thanks
    49
    Thanked 48 Times in 46 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Quote Originally Posted by wysota View Post
    Because it is read only... That's why it's called a browser and not an editor.
    Could be. Others have read the docs
    Me to and i found only one to display html page + link css image and open link on firefox .

    How you projekt a Wysiwyg xhtml editor without QTextBrowser ?
    To make a preview inside you need this QTextBrowser.
    QTextEdit dont dispay href link and open it. Boring event maybe? and make clickable.
    Otherwise you must open a new window to display and test links...

    Now i found a way to emulate XPath ....

    Now the problem is to contruct a new QDomNodeList and append note to return on public code...

    QDomNodeList not having append(node) !

    Qt Code:
    1. #include <iostream>
    2. #include <stdio.h>
    3. #include <unistd.h>
    4. #include <iostream>
    5. #include <QtCore>
    6. #include <QDomDocument>
    7.  
    8. class List_Tag
    9. {
    10. public:
    11. List_Tag( QDomDocument doc , const QString FindTagName , const QString AttributeName )
    12. {
    13. t = FindTagName;
    14. a = AttributeName;
    15.  
    16. std::cout << "Start Job search tag ->" << qPrintable(FindTagName) << std::endl;
    17. QDomNode n = doc.firstChild();
    18. if (n.hasChildNodes()) {
    19. Grep_Tag(n);
    20. }
    21. }
    22. protected:
    23. QString value;
    24. QString tagname;
    25. QDomNode node;
    26. private:
    27. void Grep_Tag( QDomNode n )
    28. {
    29. QDomNodeList list = n.childNodes();
    30. for (int i = 0; i < list.length(); ++i) {
    31. node = list.item(i);
    32. tagname = node.nodeName();
    33. std::cout << "Found tag loop->" << qPrintable(tagname) << std::endl;
    34. if (tagname == t && node.hasAttributes()) {
    35. value = node.toElement().attributeNode(a).value();
    36. if (!value.isEmpty()) {
    37. std::cout << "Result->" << qPrintable(tagname) << " attribute->" << qPrintable(value) << std::endl;
    38. }
    39. } else if (tagname == t && a.isEmpty()) {
    40. std::cout << "Result->" << qPrintable(tagname) << " and Empty attribute." << std::endl;
    41. }
    42. if (node.hasChildNodes()) {
    43. Grep_Tag(list.item(i));
    44. }
    45. }
    46. }
    47.  
    48. };
    49.  
    50. int main(int argc, char *argv[]) {
    51. QCoreApplication a( argc, argv );
    52.  
    53. const char *xml = "<test><tag>content 1</tag><tag>content 2</tag> "
    54. "<othertag>wrongcontent<p>text line <a href=\"/somelink\">link1</a></p></othertag>"
    55. "<tag>content 3 <div><p>text other <a href=\"/otherlink\">link2</a></p></div></tag></test>";
    56. bool ok = doc.setContent(QString(xml));
    57. if (ok) {
    58. List_Tag links(doc,"a","href");
    59. List_Tag paras(doc,"p","");
    60. }
    61. std::cout << "Main end..................." << std::endl;
    62. return a.exec();
    63. }
    64.  
    65. ////////#include "main.moc"
    To copy to clipboard, switch view to plain text mode 

  2. #2
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,372
    Thanks
    3
    Thanked 5,019 Times in 4,795 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Quote Originally Posted by patrik08 View Post
    Me to and i found only one to display html page + link css image and open link on firefox .
    Sorry, I don't understand what you mean.

    How you projekt a Wysiwyg xhtml editor without QTextBrowser ?
    To make a preview inside you need this QTextBrowser.
    QTextEdit dont dispay href link and open it. Boring event maybe? and make clickable.
    Otherwise you must open a new window to display and test links...
    I'd probably use QGraphicsView instead of QTextBrowser. If you want a wysiwyg editor, you have to be able to manipulate objects and QGraphicsView seems perfect for that.

    Now the problem is to contruct a new QDomNodeList and append note to return on public code...
    Your code is very cluttered with unnecessary debugging output. You should remove such lines before posting them here.

    From what I understand you wish to emulate "getElementsByName", right? Why not use QDomElement::elementsByTagName( const QString & tagname ) then?

  3. #3
    Join Date
    May 2006
    Posts
    788
    Thanks
    49
    Thanked 48 Times in 46 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Quote Originally Posted by wysota View Post
    I'd probably use QGraphicsView instead of QTextBrowser. If you want a wysiwyg editor, you have to be able to manipulate objects and QGraphicsView seems perfect for that.
    Exact , fortunately you understand me.

    QGraphicsView , this is my weakness i not found enought sample or demo , wiki or so , to learn this.

    My target is to construct a editor like Scribus , only on xml way. At end by using relax NG its can write KDE docbook file or xml , and all xml semantic. Only swap the relax file, and other format can write.


    My actual XHTML editor to home page CMS is Bitflux editor ,
    http://cvsdemo.bitfluxeditor.org/exa...TML/index.html test it
    run only on Firefox and other Gecko Browser..
    The big advantage from this XML editor is:
    1 - http://en.wikipedia.org/wiki/RELAX_NG Relax NG ( http://www.w3.org/TR/xhtml2/xhtml20_relax.html )
    2 - I can set a 100% corporate identity from clients and the person editor can not mistake page why i set a schema to hadle this. If i say param is blue and red, only this color can write.
    3 - Write all xml format rss and more like apache fop pdf excel latex ( at end only xslt) http://bitfluxeditor.org/

    Example relax ng shema to xhtml:
    http://cvsdemo.bitfluxeditor.org/exa...ML/relaxng.xml

    Have you QGraphicsView sample or how much i must pay for that?
    I understand only draw on paintevent and pixmap.

  4. #4
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,372
    Thanks
    3
    Thanked 5,019 Times in 4,795 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Quote Originally Posted by patrik08 View Post
    Have you QGraphicsView sample or how much i must pay for that?
    I understand only draw on paintevent and pixmap.
    Have you tried the example graphics view applications that come with Qt?

  5. #5
    Join Date
    May 2006
    Posts
    788
    Thanks
    49
    Thanked 48 Times in 46 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Quote Originally Posted by wysota View Post
    Have you tried the example graphics view applications that come with Qt?

    Yes i look on example/diagramscene on particular,

    QGraphicsTextItem , and how i can paste external QMimeData text/html and image included... ? inside a textitem...

  6. #6
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,372
    Thanks
    3
    Thanked 5,019 Times in 4,795 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    the text item has a QTextDocument associated with it.

  7. #7
    Join Date
    May 2006
    Posts
    788
    Thanks
    49
    Thanked 48 Times in 46 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Quote Originally Posted by wysota View Post
    the text item has a QTextDocument associated with it.
    QTextDocument the same as QTextEdit high mountain from span tag.

    I like to make my Own xml schema on relax NG:
    ( http://cvsdemo.bitfluxeditor.org/exa...strict.rng.xml )

    to transform xslt to other format fop,xhtml,docbook,latex,rss,scribus,ecc..
    Only change the relax ng file and i write on other format.. by past i accept only allowed tag, or transform tidy && xslt.

    <para/> xslt <p/>
    <bold/> xslt <b/>
    <italic/> xslt <i/>
    <textblock/> xslt <div/ style="x:y">
    <section/> xslt <div/> && xslt <section/>

    Is this possibel? wo i must beginn to subclass?

  8. #8
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,372
    Thanks
    3
    Thanked 5,019 Times in 4,795 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Start with stopping treating QTextDocument as HTML.

  9. #9
    Join Date
    May 2006
    Posts
    788
    Thanks
    49
    Thanked 48 Times in 46 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Quote Originally Posted by wysota View Post
    Start with stopping treating QTextDocument as HTML.
    Cann you explain more exact? "treating" http://dictionary.reference.com/ dont have it..

    Doc say...

    http://doc.trolltech.com/4.0/qabstra...entlayout.html

    The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for QTextDocuments. More...

    #include <QAbstractTextDocumentLayout>
    My question is here on QAbstractTextDocumentLayout if i can manipulate tag and reimplement as xml other tag:

    example xml from scribus....

    http://tuxmas.lug-bk.de/tuxmas.sla


    An here comming xml return...


    QString QTextDocument::toHtml ( const QByteArray & encoding = QByteArray() ) const
    Returns a string containing an HTML representation of the document.
    The encoding parameter specifies the value for the charset attribute in the html header. For example if 'utf-8' is specified then the beginning of the generated html will look like this:
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>...
    If no encoding is specified then no such meta information is generated.
    If you later on convert the returned html string into a byte array for transmission over a network or when saving to disk you should specify the encoding you're going to use for the conversion to a byte array here.
    See also Supported HTML Subset.


    Or better write a :

    QString QTextDocument::toNewXML ( const QByteArray & encoding = QByteArray() ) const

    a total new one ..? an append the 100% relax ng schema <grammar define ....

    If QTextDocument can transform to xml format from scribus all my problem is solved!
    and on xslt can make docbook latex word pdf openoffice the scribus format can handle forms coordinate color rgb or cyan... so much choise.

    The html paragraph tag dont return point X,Y or height x width

  10. #10
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,372
    Thanks
    3
    Thanked 5,019 Times in 4,795 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    I meant to start treating QTextDocument as a set of blocks of blocks of blocks of.... formatted text and not as html. Stop reading html tags and dig into the API of the framework.

  11. #11
    Join Date
    May 2006
    Posts
    788
    Thanks
    49
    Thanked 48 Times in 46 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Quote Originally Posted by wysota View Post
    I meant to start treating QTextDocument as a set of blocks of blocks of blocks of.... formatted text and not as html. Stop reading html tags and dig into the API of the framework.
    Imo: Ok.. now i have more time; i move a subclass from 100 ip to a new provider .. a battle to become correct TTL running and bandswitch.

    QTextBlock is only on /src/gui/text/ qtextobject.cpp && qtextobject.cpp or is here more place?
    the are only objekt to transform on what I want?
    On this case i must only subclass QTextDocument and append my import/export tag , and begin document
    void QGraphicsTextItem::setDocument ( QTextDocument * document )

    ist this mistake or correct?

  12. #12
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,372
    Thanks
    3
    Thanked 5,019 Times in 4,795 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: QT4 DomXPath / DomElementContainer find tag.

    Read a bit about the whole framework: http://doc.trolltech.com/latest/richtext.html

Similar Threads

  1. Qt Cryptographic Architecture
    By vermarajeev in forum Qt Programming
    Replies: 6
    Last Post: 9th February 2007, 13:15

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.