【发布时间】:2015-09-24 00:43:27
【问题描述】:
我正在使用 ElementTree API 来读取和写入 XML 文档。当我尝试添加以数字开头的标签时,XML 文件不再有效。使用import xml.etree.cElementTree as ET,我成功地创建了 XML 文档,但是当我再次尝试读取 XML 文件时,我得到了 ParseError。就我的目的而言,XML 文档的格式是否正确并不重要。 我只需要能够以数字开头。知道如何做到这一点吗?
这是我尝试过的:
from lxml import etree
parser = etree.XMLParser(recover=True)
tree = ET.parse('xmldoc.xml')
root = tree.getroot()
xmlstring = ET.tostring(root)
etree.fromstring(xmlstring, parser=parser)
如果我使用这个,我会得到这个错误:
ValueError: 无效的标签名称 u'1.0'
尝试这样做之后:
inputowner = raw_input("Enter owner for " + ls[i] + ": ")
child = ET.SubElement(prev , ls[i], owner = inputowner)
prev = child
prevowner = inputowner
这是我试图放入 XML 文件的列表:
['components', 'rel', 'core.slpi', '1.0', 'blluuses', 'i2c', 'src', 'logs', 'I2cUlog.c']
列表中的每个项目都应用作 ElementTree 标记。当我达到“1.0”时,问题就出现了。
如果无法回答第一个问题,您是否知道任何其他模块可以做几乎相同的事情但允许我有一个以数字开头的标签? ElementTree 太棒了,我只需要这件事来工作,然后我就可以继续前进。
【问题讨论】:
标签: python xml parsing elementtree