fb2xml2.h 3.6 KB

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