我没那么熟悉objectify
,但我不认为这是它打算使用的方式。它表示对象的方式是任何给定级别的节点都是类名称,子节点是字段名称(带有类型)和值。和正常的方式来使用它会更多的东西是这样的:
xml_obj = lxml.objectify.Element('xml_obj')
xml_obj.root_path = 'text'
etree.dump(xml_obj)
<root_name xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" py:pytype="TREE">
<root_name py:pytype="str">text</root_name>
</root_name>
你想会是比较容易的方式与etree
做什么:
xml_obj = lxml.etree.Element('root_path')
xml_obj.text = 'text'
etree.dump(xml_obj)
<root_path>text</root_path>
如果你真的需要它是在objectify
,它看起来像你不应该直接混合,你可以使用tostring
生成XML,然后objectify.fromstring
把它带回来。但可能的话,如果这是你想要的,你应该使用etree
来生成它。
谢谢!我一直在使用Objectify,因为我对它很熟悉,但你对etree完全正确。 –