4 #include "xmlhandler.h"
8 /** XML content handler for OPS format. */
9 class OpsHandler: public XmlHandler
12 OpsHandler(Book &b): book(b), partCount(0) {}
14 bool endElement(const QString &namespaceUri, const QString &name,
15 const QString &qName) {
18 if (currentText.size()) {
19 if (name == "title") {
20 book.title = currentText;
21 } else if (name == "creator") {
22 book.creators.append(currentText);
23 } else if (name == "publisher") {
24 book.publisher = currentText;
25 } else if (name == "subject") {
26 book.subject = currentText;
27 } else if (name == "source") {
28 book.source = currentText;
29 } else if (name == "rights") {
30 book.rights = currentText;
36 bool startElement(const QString &namespaceUri, const QString &name,
37 const QString &qName, const QXmlAttributes &attrs) {
43 Book::ContentItem item;
44 item.href = attrs.value("href");
45 item.name = QString("Part %1").arg(partCount + 1);
47 QString key = attrs.value("id");
48 book.content[key] = item;
50 } else if (name == "itemref") {
51 book.parts.append(attrs.value("idref"));
61 #endif // OPSHANDLER_H