4 #include <QXmlContentHandler>
8 /** XML content handler for NCX format. */
9 class NcxHandler: public QXmlContentHandler
12 bool endDocument() {return true;}
13 bool endPrefixMapping(const QString &) {return true;}
14 QString errorString() const {return "";}
15 bool ignorableWhitespace(const QString &) {return true;}
16 bool processingInstruction(const QString &, const QString &) {return true;}
17 void setDocumentLocator(QXmlLocator *) {}
18 bool skippedEntity(const QString &) {return true;}
19 bool startDocument() {return true;}
20 bool startPrefixMapping(const QString &, const QString &) {return true;}
22 NcxHandler(Book &b): book(b)
27 bool characters(const QString &ch)
33 bool endElement(const QString &namespaceUri, const QString &name,
39 contentTitle = currentText;
40 } else if (name == "navPoint") {
41 Book::ContentItem item;
42 item.href = book.rootPath() + "/" + contentUrl;
43 item.name = contentTitle;
44 book.content[contentId] = item;
45 book.toc.append(contentId);
50 bool startElement(const QString &namespaceUri, const QString &name,
51 const QString &qName, const QXmlAttributes &attrs)
56 if (name == "navPoint") {
57 contentId = attrs.value("id");
58 } else if (name == "content") {
59 contentUrl = attrs.value("src");
72 #endif // NCXHANDLER_H