}
}
+ readSynonymsAntonymsFalseFriends( domElementParent );
+
groupElement = domElementParent.firstChildElement( KVTML_WORDTYPES );
if ( !groupElement.isNull() ) {
readChildWordTypes( m_doc->wordTypeContainer(), groupElement );
}
+bool KEduVocKvtml2Reader::readSynonymsAntonymsFalseFriends( QDomElement &rootElement )
+{
+ // synonyms
+ QDomElement pairElement = rootElement.firstChildElement( KVTML_SYNONYM );
+ // pair
+ pairElement = pairElement.firstChildElement( KVTML_PAIR );
+ while ( !pairElement.isNull() ) {
+ //<entry id="123"/>
+ QDomElement entryElement = pairElement.firstChildElement( KVTML_ENTRY );
+ int firstEntryId = entryElement.attribute( KVTML_ID ).toInt();
+
+ QDomElement translationElement = entryElement.firstChildElement( KVTML_TRANSLATION );
+ int firstTranslationId = translationElement.attribute( KVTML_ID ).toInt();
+
+ // second entry
+ entryElement = entryElement.nextSiblingElement( KVTML_ENTRY );
+ int secondEntryId = entryElement.attribute( KVTML_ID ).toInt();
+ translationElement = entryElement.firstChildElement( KVTML_TRANSLATION );
+ int secondTranslationId = translationElement.attribute( KVTML_ID ).toInt();
+
+ // pair them up
+ KEduVocTranslation *first = m_allEntries[firstEntryId]->translation(firstTranslationId);
+ KEduVocTranslation *second = m_allEntries[secondEntryId]->translation(secondTranslationId);
+
+ first->addSynonym(second);
+ second->addSynonym(first);
+
+ pairElement = pairElement.nextSiblingElement( KVTML_PAIR );
+ }
+ return true;
+}
+
bool KEduVocKvtml2Reader::readArticle( QDomElement &articleElement, int identifierNum )
/*
<article>
relatedElement.appendChild(entryElement);
- entryElement = m_domDoc.createElement( KVTML_ENTRY );
- entryElement.setAttribute( KVTML_ID, QString::number(m_allEntries.indexOf(synonym->entry())) );
+ QDomElement partnerElement = m_domDoc.createElement( KVTML_ENTRY );
+ partnerElement.setAttribute( KVTML_ID, QString::number(m_allEntries.indexOf(synonym->entry())) );
// find out which id that is
foreach(int index, synonym->entry()->translationIndices()) {
// create <translation id="123">
QDomElement translationElement = m_domDoc.createElement( KVTML_TRANSLATION );
translationElement.setAttribute( KVTML_ID, QString::number(index) );
- entryElement.appendChild(translationElement);
+ partnerElement.appendChild(translationElement);
break;
}
}
- relatedElement.appendChild( entryElement );
- }
- if (relatedElement.hasChildNodes()) {
- synonymElement.appendChild( relatedElement );
+ relatedElement.appendChild( partnerElement );
}
}
+ if (relatedElement.hasChildNodes()) {
+ synonymElement.appendChild( relatedElement );
+ }
}
if (synonymElement.hasChildNodes()) {
parentElement.appendChild( synonymElement );