Как вы генерируете xml из нестроковых типов данных, используя minidom? - PullRequest
3 голосов
/ 21 октября 2010

Как вы генерируете xml из нестроковых типов данных, используя minidom? У меня такое чувство, что кто-то скажет мне генерировать строки до того, как я получу, но это не то, что я хочу.

from datetime import datetime
from xml.dom.minidom import Document

num = "1109"
bool = "false"
time = "2010-06-24T14:44:46.000"

doc = Document()

Submission = doc.createElement("Submission")
Submission.setAttribute("bool",bool)
doc.appendChild(Submission)

Schedule = doc.createElement("Schedule")
Schedule.setAttribute("id",num)
Schedule.setAttribute("time",time)
Submission.appendChild(Schedule)

print doc.toprettyxml(indent="  ",encoding="UTF-8")

Это результат:

<?xml version="1.0" encoding="UTF-8"?>
<Submission bool="false">
  <Schedule id="1109" time="2010-06-24T14:44:46.000"/>
</Submission>

Как получить действительные xml-представления нестроковых типов данных?

from datetime import datetime
from xml.dom.minidom import Document

num = 1109
bool = False
time = datetime.now()

doc = Document()

Submission = doc.createElement("Submission")
Submission.setAttribute("bool",bool)
doc.appendChild(Submission)

Schedule = doc.createElement("Schedule")
Schedule.setAttribute("id",num)
Schedule.setAttribute("time",time)
Submission.appendChild(Schedule)

print doc.toprettyxml(indent="  ",encoding="UTF-8")

Файл "C: \ Python25 \ lib \ xml \ dom \ minidom.py", строка 299, в _write_data data = data.replace ("&", "&"). replace ("<", "<") AttributeError: у объекта 'bool' нет атрибута 'replace' </p>

1 Ответ

3 голосов
/ 21 октября 2010

Связанный метод setAttribute ожидает, что его второй аргумент, значение, будет строкой. Вы можете помочь процессу, преобразовав данные в строки:

bool = str(False)

или преобразование в строки при вызове setAttribute:

Submission.setAttribute("bool",str(bool))

(и, конечно, то же самое должно быть сделано для num и time).

...