2010-05-14 4 views
2

У меня есть эта xml модель.Python изменить файл xml

link text

Так что я должен добавить узел (см текст комментировал) к этому файлу. Как я могу это сделать?

Я writed этот частичный код, но он не работает:

xmldoc=minidom.parse(directory) 
child = xmldoc.createElement("map") 
for node in xmldoc.getElementsByTagName("Environment"): 
    node.appendChild(child) 

Спасибо заранее.

+0

мертвая ссылка с xml моделью. возможно, вы могли бы разместить соответствующую часть здесь. – n611x007

ответ

1

Я загрузил ваш образец XML-файла, и ваш код работает нормально. Ваша проблема, скорее всего, связана с линией: xmldoc=minidom.parse(directory), если это не путь к файлу, который вы пытаетесь разобрать не в каталог? Функция parse() анализирует XML-файл, который он не автоматически анализирует все файлы XML в заданном каталоге.

Если вы измените свой код на то, как показано ниже, это должно работать нормально:

xmldoc=minidom.parse("directory/model_template.xml") 
child = xmldoc.createElement("map") 
    for node in xmldoc.getElementsByTagName("Environment"): 
     node.appendChild(child) 

Если затем выполнить оператор: print xmldoc.toxml() вы увидите, что map элемент действительно был добавлен в Environment элемент: <Environment><map/></Environment> ,

+0

Если окажется, что файл полукоррумпирован, вы можете попробовать использовать BeautifulStoneSoup. – SapphireSun

+0

Согласен, но в этом случае это не было необходимо. –