diff --git a/XML_Moodle.py b/XML_Moodle.py
new file mode 100755
index 0000000000000000000000000000000000000000..199cd1952b695757b0f73d2f581d1fc3b957ade9
--- /dev/null
+++ b/XML_Moodle.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+import xml.etree.ElementTree as ET
+from utils import strip_tags, mlang_2_multiling
+class Quizz:
+	def __init__(self, file_name):
+		self.file_name = file_name
+		self.tree = ET.parse(self.file_name)
+		self.questions = []
+		self.parse()
+
+	def get_tree(self):
+		return self.tree
+
+	def parse(self):
+		questions = self.tree.findall("question")
+		for q in questions:
+			if q.attrib["type"] == "category":
+				c = q.find("category/text").text.replace("$course$/top/","").replace("/",":").replace("::","/")
+			else:
+				self.questions.append(Question(q,c))
+
+	def __str__(self):
+		res = ""
+		for q in self.questions:
+			res += str(q)
+		return res
+
+class Question:
+	def __init__(self,xmlQ,c):
+		self.q = mlang_2_multiling(strip_tags(xmlQ.find("questiontext/text").text))
+		self.category = c
+	def __str__(self):
+		return """\\element{"""+self.category+"""}{
+	\\begin{questionmult}{Def}\\nbpoints{0,5}
+		"""+self.q+"""
+		\\begin{choices}
+			\\correctchoice{L'utilisation d'un traitement de texte en cours de langue.}\bareme{b=0.25}
+			\\correctchoice{L'évaluation de l'interface d'un concordancier en vue de son utilisation en classe d'anglais.}\bareme{b=0.15}
+			\\correctchoice{L'utilisation d'un glossaire en ligne sur l'informatique en cours de FLE.}\bareme{b=0.15}
+			\\wrongchoice{L'utilisation d'un dictionnaire en cours d'anglais.}\bareme{b=0,m=-0.25}
+			\\wrongchoice{La création d'un glossaire en ligne sur l'informatique.}\bareme{b=0}
+		\\end{choices}
+		\\explain{La création d'un lexique ne relève pas intrinsèquement de l'ALAO, encore faut-il que son usage soit lié à l'apprentissage d'une langue.}
+	\\end{questionmult}
+}\n\n"""
+
+if __name__ == "__main__":
+	quizz = Quizz("quiz-GI-4-SID-S1-top-20201204-1620.xml")
+	print(quizz)
diff --git a/utils.py b/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..0c927f320040ee6094175bbecaf7abb7fcaebe96
--- /dev/null
+++ b/utils.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python3
+from re import compile,sub
+
+def remove_moodle_cdata(txt):
+	return txt.replace("<![CDATA[","").replace("]]>","")
+
+def strip_tags(txt):
+	return sub(compile('<.*?>'), '',remove_moodle_cdata(txt))
+
+def mlang_2_multiling(txt):
+	return sub(r"\{mlang en\}(.*?)\{mlang\}\{mlang other\}(.*?)\{mlang\}", r"\\multiling{\2}{\1}",txt)