diff --git a/src/export.py b/src/export.py index 696796f..1d87e0e 100644 --- a/src/export.py +++ b/src/export.py @@ -27,12 +27,34 @@ def export_entry(entry): headword.appendChild(headword_lemma) head.appendChild(headword) + # if({}) works uncorrectly in transcrypt + if len(entry.lexical_unit) > 0: + lexunit = doc.createElement("lexicalUnit") + lexunit.setAttribute("id", entry.lexical_unit["id"]) + lexunit.setAttribute("type", "single") + lexeme = doc.createElement("lexeme") + lexeme.setAttribute("lexical_unit_lexeme_id", entry.lexical_unit["id"]) + lexeme.textContent = entry.lexical_unit["text"] + + lexunit.appendChild(lexeme) + head.appendChild(lexunit) + grammar = doc.createElement("grammar") grammar_category = doc.createElement("category") grammar_category.textContent = entry.grammar grammar.appendChild(grammar_category) head.appendChild(grammar) + if len(entry.measure) > 0: + measure_list = doc.createElement("measureList") + measure = doc.createElement("measure") + measure.setAttribute("source", entry.measure["source"]) + measure.setAttribute("type", entry.measure["type"]) + measure.textContent = entry.measure["text"] + + measure_list.appendChild(measure) + head.appendChild(measure_list) + variants = doc.createElement("variantList") head.appendChild(variants) diff --git a/src/model/entry.py b/src/model/entry.py index dfd51b5..3fe9614 100644 --- a/src/model/entry.py +++ b/src/model/entry.py @@ -15,6 +15,19 @@ class Entry(Editable): self.comment = comment.textContent if comment else "" self.variants = [v.textContent for v in entry_xml.querySelectorAll("head variantList variant")] + self.lexical_unit = {} + lex_unit = entry_xml.querySelector("lexical_unit lexeme,lexicalUnit lexeme") + if lex_unit: + self.lexical_unit['id'] = lex_unit.getAttribute("lexical_unit_lexeme_id") + self.lexical_unit['text'] = lex_unit.textContent + + self.measure = {} + measure = entry_xml.querySelector("measureList measure") + if measure: + self.measure["source"] = measure.getAttribute("source") + self.measure["type"] = measure.getAttribute("type") + self.measure["text"] = measure.textContent + self.labels = [] for tag_xml in entry_xml.querySelectorAll("head labelList label"): t_type = tag_xml.getAttribute("type") @@ -28,4 +41,8 @@ class Entry(Editable): self.senses = [Sense(sense_xml) for sense_xml in entry_xml.querySelectorAll("body senseList sense")] + + def get_measure_text(self): + console.log(self.measure["text"] if "text" in self.measure else "") + return self.measure["text"] if "text" in self.measure else ""