void KHTMLReader::parseNode(DOM::Node node) { // check if this is a text node. DOM::Text t = node; if (!t.isNull()) { _writer->addText(state()->paragraph, t.data().string(), 1, state()->in_pre_mode); return; // no children anymore... } // is this really needed ? it can't do harm anyway. state()->format = _writer->currentFormat(state()->paragraph, true); state()->layout = _writer->currentLayout(state()->paragraph); pushNewState(); DOM::Element e = node; bool go_recursive = true; if (!e.isNull()) { // get the CSS information parseStyle(e); // get the tag information go_recursive = parseTag(e); } if (go_recursive) { for (DOM::Node q = node.firstChild(); !q.isNull(); q = q.nextSibling()) { parseNode(q); } } popState(); }
void KHTMLReader::parse_head(DOM::Element e) { for (DOM::Element items = e.firstChild();!items.isNull();items = items.nextSibling()) { if (items.tagName().string().lower() == "title") { DOM::Text t = items.firstChild(); if (!t.isNull()) { _writer->createDocInfo("HTML import filter", t.data().string()); } } } }
bool KHTMLReader::parse_a(DOM::Element e) { QString url = e.getAttribute("href").string(); if (!url.isEmpty()) { QString linkName; DOM::Text t = e.firstChild(); if (t.isNull()) { /* Link without text -> just drop it*/ return false; /* stop parsing recursively */ } linkName = t.data().string().simplified(); t.setData(DOM::DOMString("#")); // replace with '#' _writer->createLink(state()->paragraph, linkName, url); } return true; /* stop parsing recursively */ }