【发布时间】:2013-11-30 16:21:21
【问题描述】:
我正在使用 lxml 制作一个 xml 文件,我的示例程序是:
from lxml import etree
import datetime
dt=datetime.datetime(2013,11,30,4,5,6)
dt=dt.strftime('%Y-%m-%d')
page=etree.Element('html')
doc=etree.ElementTree(page)
dateElm=etree.SubElement(page,dt)
outfile=open('somefile.xml','w')
doc.write(outfile)
我得到以下错误输出:
dateElm=etree.SubElement(page,dt)
File "lxml.etree.pyx", line 2899, in lxml.etree.SubElement (src/lxml/lxml.etree.c:62284)
File "apihelpers.pxi", line 171, in lxml.etree._makeSubElement (src/lxml/lxml.etree.c:14296)
File "apihelpers.pxi", line 1523, in lxml.etree._tagValidOrRaise (src/lxml/lxml.etree.c:26852)
ValueError: Invalid tag name u'2013-11-30'
我以为是 Unicode 错误, 所以尝试使用类似
的代码更改 'dt' 的编码str(dt)unicode(dt).encode('unicode_escape')dt.encocde('ascii','ignore')dt.encode('ascii','decode')
还有一些其他的,但没有一个有效并且生成了相同的错误消息。
【问题讨论】:
-
你能添加你输入XMl的相关片段吗?
-
^ 我的 xml 文件为空。我正在使用最后一行代码编写输出 - 'doc.write(outfile)'
-
您似乎正在将日期写为标签。这就是你的意思吗?
-
^ 啊..是的。我在写
some value
标签: python xml python-2.7 lxml