예제 #1
0
void DomParser::parseEntryElement(const QDomElement &element,
                                  QTreeWidgetItem *parent)
{
    QTreeWidgetItem *item = new QTreeWidgetItem(parent);
    item->setText(0, element.attribute("term"));

    QDomNode child = element.firstChild();
	while (!child.isNull())
	{
		if (child.toElement().tagName() == "entry")
		{
            parseEntryElement(child.toElement(), item);
		}
		else if (child.toElement().tagName() == "page")
		{
            parsePageElement(child.toElement(), item);
        }
		child = child.nextSibling();
    }
}
bool FineReaderXMLOutputHandler::startElement(	const QString &namespaceURI,
												const QString &localName,
												const QString &qName,
												const QXmlAttributes &attributes)
{

//	std::cout << "startElement()" << "\n";
//	std::cout << "namespaceURI = " << namespaceURI.toStdString() << std::endl;
//	std::cout << "localName = " << localName.toStdString() << std::endl;
//	std::cout << "qName = " << qName.toStdString() << std::endl;
//	std::cout << "attributes length = " << attributes.length() << std::endl;

	bool returnVal = true;
	// if current element is charParams --> parse it in corresponding function
	if (qName == "page") {
		returnVal = parsePageElement(attributes);
	}
	else if (qName == "charParams") {
		returnVal =  parseCharParamsElement(attributes);
	}

    currentText.clear();
    return returnVal;
} // end of startElement