2011-06-10 2 views
3

У меня возникла проблема с форматированием xml при записи в XML-файл. Проблема в том, что в первый раз, когда я пишу в xml-файл, xml отформатирован правильно, используя pretty_print = True. Любые последующие попытки добавления в xml-файл не отформатированы должным образом. Xml написан, но не отформатирован. Мой код выглядит следующим образом:ElementTree.write не pretty_print на втором проходе

#does the library.xml file exist? 
if os.path.isfile(libraryFile): 
    library = ET.ElementTree() 
    library.parse(libraryFile) 
else: 
    #the library.xml does not exist at the given path 
    library = ET.ElementTree(project.getBoilerplateLibrary(path)) 

root = library.getroot() 

root.append(xml) #xml is a lxml Element object 

f = open(libraryFile, 'w') 
library.write(f, pretty_print=True) 
f.close() 

В первый раз мы пишем в файл я получаю что-то вроде:

<root> 
    <element> 
     <foo>bar</foo> 
    </element> 
</root> 

Любых последующих попыток добавить к этому файлу в конечном итоге выглядит как:

<root> 
    <element> 
     <foo>bar</foo> 
    </element><element><bleep>bloop</bleep></element></root> 

Любые идеи?

ответ

1

Справку покрывает этот ответ: Why doesn't the pretty print options reformat my XML output

Этот вопрос также был задан ранее на StackOverflow в lxml pretty print write file problem.

Это, к сожалению, побочный эффект использования XML, где, безусловно, имеет значение пробел (к сожалению).

+0

Спасибо X-Istence! Наверное, я не знал, что искать. Спасибо, что указал мне в правильном направлении. Настройка анализатора для пользователя remove_blank_text сделала трюк для меня. – Greg

 Смежные вопросы

  • Нет связанных вопросов^_^