我使用lxml生成一些XML并获取如下所示的节点:
<QBXML 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">
和
<MaxReturned py:pytype="int">
这些自定义属性会破坏Quickbooks的解析器。我可以在没有自定义内容的情况下渲染LXML吗?
答案 0 :(得分:7)
看起来如下照顾它:
objectify.deannotate(root, xsi_nil=True)
etree.cleanup_namespaces(root)
或者,如果使用lxml&gt; = 2.3.2(感谢@Pedru):
objectify.deannotate(root, cleanup_namespaces=True, xsi_nil=True)
答案 1 :(得分:0)
如果您正在使用
etree.fromstring(xml_response)
然后这样做:
xml_response.replace(' xmlns:', ' xmlnamespace:').replace(' xmlns=', ' xmlnamespace=')
避免它解析名称空间
答案 2 :(得分:0)
如果要嵌套XML,可以执行以下操作:
from lxml import objectify
doc = objectify.ElementMaker(annotate=False)
doc = (objectify.E.configuration(getattr(objectify.E,'networklists'),name="acl.conf",description="Network Lists"))
objectify.deannotate(doc,cleanup_namespaces=True)
具有自定义属性的输出如下:
<configuration description="Network Lists" name="acl.conf">
<network-lists>
</network-lists>
</configuration>