4 #include "xmlhandler.h"
8 /** XML content handler for OPS format. */
9 class OpsHandler: public XmlHandler
12 OpsHandler(Book &b): book(b), partCount(0) {
13 book.creators.clear();
16 bool endElement(const QString &namespaceUri, const QString &name,
17 const QString &qName) {
20 if (currentText.size()) {
21 if (name == "title") {
22 book.title = currentText;
23 } else if (name == "creator") {
24 book.creators.append(currentText);
25 } else if (name == "publisher") {
26 book.publisher = currentText;
27 } else if (name == "subject") {
28 book.subject = currentText;
29 } else if (name == "source") {
30 book.source = currentText;
31 } else if (name == "rights") {
32 book.rights = currentText;
38 bool startElement(const QString &namespaceUri, const QString &name,
39 const QString &qName, const QXmlAttributes &attrs) {
45 Book::ContentItem item;
46 item.href = attrs.value("href");
47 item.name = QString("Part %1").arg(partCount + 1);
49 QString key = attrs.value("id");
50 book.content[key] = item;
52 } else if (name == "itemref") {
53 book.parts.append(attrs.value("idref"));
63 #endif // OPSHANDLER_H