3

如何使用 minidom 从非字符串数据类型生成 xml?我有一种感觉,有人会告诉我事先生成字符串,但这不是我想要的。

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("<", "<") 属性错误: “布尔”对象没有“替换”属性

4

1 回答 1

3

绑定方法setAttribute期望它的第二个参数,即值,是一个字符串。您可以通过将数据转换为字符串来帮助该过程:

bool = str(False)

或者,在您调用时转换为字符串setAttribute

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

num(当然,对于和也必须这样做time)。

于 2010-10-21T02:55:55.333 回答