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("<", "<") AttributeError: 'bool' オブジェクトには属性 'replace' がありません

4

1 に答える 1

3

バインドされたメソッドsetAttributeは、2 番目の引数である値が文字列であることを想定しています。データを文字列に変換することで、プロセスを支援できます。

bool = str(False)

または、次の呼び出し時に文字列に変換しますsetAttribute

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

(もちろん、 と についても同じことを行う必要がありますnum) time

于 2010-10-21T02:55:55.333 に答える