1
0

fb2xml2.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #ifndef FB2XML2_H
  2. #define FB2XML2_H
  3. /////////////////////////////////////////////////////////////////////////////
  4. //
  5. // Append into project file:
  6. // INCLUDEPATH += /usr/include/libxml2
  7. // LIBS += -lxml2
  8. //
  9. // http://blog.sjinks.pro/c-cpp/qt/942-html-parser-qt/
  10. //
  11. //
  12. // QByteArray data;
  13. // QXmlInputSource src;
  14. // HtmlReader reader;
  15. // QDomDocument doc;
  16. // src.setData(data);
  17. // doc.setContent(&src, &reader);
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include <QtXml/QXmlReader>
  21. #include <libxml/xmlstring.h>
  22. namespace XML2 {
  23. class HtmlReaderPrivate;
  24. class HtmlReader : public QXmlReader {
  25. public:
  26. HtmlReader(void);
  27. virtual ~HtmlReader(void);
  28. virtual bool feature(const QString& name, bool* ok = 0) const;
  29. virtual void setFeature(const QString& name, bool value);
  30. virtual bool hasFeature(const QString& name) const;
  31. virtual void* property(const QString& name, bool* ok = 0) const;
  32. virtual void setProperty(const QString& name, void* value);
  33. virtual bool hasProperty(const QString& name) const;
  34. virtual void setEntityResolver(QXmlEntityResolver* handler);
  35. virtual QXmlEntityResolver* entityResolver(void) const;
  36. virtual void setDTDHandler(QXmlDTDHandler* handler);
  37. virtual QXmlDTDHandler* DTDHandler(void) const;
  38. virtual void setContentHandler(QXmlContentHandler* handler);
  39. virtual QXmlContentHandler* contentHandler(void) const;
  40. virtual void setErrorHandler(QXmlErrorHandler* handler);
  41. virtual QXmlErrorHandler* errorHandler(void) const;
  42. virtual void setLexicalHandler(QXmlLexicalHandler* handler);
  43. virtual QXmlLexicalHandler* lexicalHandler(void) const;
  44. virtual void setDeclHandler(QXmlDeclHandler* handler);
  45. virtual QXmlDeclHandler* declHandler(void) const;
  46. virtual bool parse(const QXmlInputSource& input);
  47. virtual bool parse(const QXmlInputSource* input);
  48. private:
  49. Q_DISABLE_COPY(HtmlReader)
  50. Q_DECLARE_PRIVATE(HtmlReader)
  51. QScopedPointer<HtmlReaderPrivate> d_ptr;
  52. friend class HtmlReaderLocator;
  53. };
  54. class XmlReaderPrivate;
  55. class XmlReader : public QXmlReader {
  56. public:
  57. XmlReader(void);
  58. virtual ~XmlReader(void);
  59. virtual bool feature(const QString& name, bool* ok = 0) const;
  60. virtual void setFeature(const QString& name, bool value);
  61. virtual bool hasFeature(const QString& name) const;
  62. virtual void* property(const QString& name, bool* ok = 0) const;
  63. virtual void setProperty(const QString& name, void* value);
  64. virtual bool hasProperty(const QString& name) const;
  65. virtual void setEntityResolver(QXmlEntityResolver* handler);
  66. virtual QXmlEntityResolver* entityResolver(void) const;
  67. virtual void setDTDHandler(QXmlDTDHandler* handler);
  68. virtual QXmlDTDHandler* DTDHandler(void) const;
  69. virtual void setContentHandler(QXmlContentHandler* handler);
  70. virtual QXmlContentHandler* contentHandler(void) const;
  71. virtual void setErrorHandler(QXmlErrorHandler* handler);
  72. virtual QXmlErrorHandler* errorHandler(void) const;
  73. virtual void setLexicalHandler(QXmlLexicalHandler* handler);
  74. virtual QXmlLexicalHandler* lexicalHandler(void) const;
  75. virtual void setDeclHandler(QXmlDeclHandler* handler);
  76. virtual QXmlDeclHandler* declHandler(void) const;
  77. virtual bool parse(QIODevice& input);
  78. virtual bool parse(const QXmlInputSource&);
  79. virtual bool parse(const QXmlInputSource*);
  80. private:
  81. Q_DISABLE_COPY(XmlReader)
  82. Q_DECLARE_PRIVATE(XmlReader)
  83. QScopedPointer<XmlReaderPrivate> d_ptr;
  84. friend class XmlReaderLocator;
  85. };
  86. } // namespace XML2
  87. #endif // FB2XML2_H