LMSouq
moodle-core Open

Create XML file with python by iterating over lists

JB
JB_1980
1 month ago
3 views
Problem Description
I am trying to get an xml file that looks like this so that I can import it into a moodle gradebook: <!-- language: xml --> <results> <result> <student>1</student> <assignment>100</assignment> <score>0</score> </result> <result> <student>1</student> <assignment>101</assignment> <score>4</score> </result> <result> <student>1</student> <assignment>102</assignment> <score>10</score> </result> <result> <student>2</student> <assignment>100</assignment> <score>0</score> </result> <result> <student>2</student> <assignment>101</assignment> <score>4</score> </result> <result> <student>2</student> <assignment>102</assignment> <score>10</score> </result> </results> I have tried to write some code in python, and after poring over the documentation, the best I can come up with is: <!-- language: python --> import xml.etree.cElementTree as ET students = [1,2] assignments=[100,101,102] scores=[0,4,10] results = ET.Element("results") result = ET.SubElement(results,"result") student = ET.SubElement(result,"student") assignment = ET.SubElement(result,"assignment") score = ET.SubElement(result,"score") for s in students: for a in range(len(assignments)): student.text = str(s) assignment.text = str(assignments[a]) score.text = str(scores[a]) results.append(result) tree = ET.ElementTree(results) tree.write('test.xml') This almost gives me what I want, but the last entry seems to overwrite all the previous entries as shown: <!-- language: xml --> <results> <result> <student>2</student> <assignment>102</assignment> <score>10</score> </result> <result> <student>2</student> <assignment>102</assignment> <score>10</score> </result> <result> <student>2</student> <assignment>102</assignment> <score>10</score> </result> <result> <student>2</student> <assignment>102</assignment> <score>10</score> </result> <result> <student>2&...

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base