питон минидом не закрывается - PullRequest
2 голосов
/ 18 августа 2011

Я испытываю странное поведение при использовании минидома.Я запускаю следующий код:

import os
import sys
from xml.dom import minidom
def generateReleaseXMLFile():
    modelPath = "%./model/"
    # Create the parser
    xsydoc  = minidom.Document()
    # Create the element ScriptModelVersion
    scriptModelVersion  = xsydoc.createElement('ScriptModelVersion')
    # Assign all the attributes
    scriptModelVersion.setAttribute("Major", "1")
    scriptModelVersion.setAttribute("Minor", "2")
    scriptModelVersion.setAttribute("Patch", "3")
    scriptModelVersion.setAttribute("ReseaseDate", "2011-05-20")
    # Append the root to the document
    xsydoc.appendChild(scriptModelVersion)
    # Create the file descriptor
    fdesc = open(modelPath+"Release.xml", "w")
    # Write the file
    fdesc.write(xsydoc.toprettyxml())
    # Close the file
    fdesc.close()
    print xsydoc.toprettyxml()

generateReleaseXMLFile()

Он генерирует следующий вывод:

<?xml version="1.0" ?>
<ScriptModelVersion Major="9" Minor="0" Patch="1" ReleaseDate="2011-05-20"/>

без закрытия тега xml.Я действительно понятия не имею о том, почему документ остается открытым.Кто-нибудь испытывал такую ​​же проблему?Или я просто забываю что-то действительно очевидное и просто не вижу проблемы?

Ответы [ 2 ]

6 голосов
/ 18 августа 2011

<?xml ... ?> - это не тег, а XML декларация . Не нужно его закрывать, ваш документ в отличной форме.

1 голос
/ 18 августа 2011

Ваш XML действителен: посмотрите: http://en.wikipedia.org/wiki/XML_Schema_%28W3C%29

Вам не нужно закрывать декларацию.

...