Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用lxml将长XML标记拆分为多行_Python_Xml_Lxml_Pretty Print - Fatal编程技术网

Python 使用lxml将长XML标记拆分为多行

Python 使用lxml将长XML标记拆分为多行,python,xml,lxml,pretty-print,Python,Xml,Lxml,Pretty Print,我的python(2.7)脚本正在使用lxml库输出以下XML: 我想将其输出为多行,每个属性一行: 我想出了一个非常幼稚和低效的方法 使用lxml库生成xml后,我处理输出。 下面的代码仅测试用于lxml输出,并假设每行有一个标记 output=etree.tostring( 树, xml_声明=True, 漂亮的印刷品=真的, encoding=tree.docinfo.encoding, ) 输出=输出。替换(“\”,“\”\n”) 打开(文件名为“w”)作为f: 父项标记行=无 对于

我的python(2.7)脚本正在使用
lxml
库输出以下XML:


我想将其输出为多行,每个属性一行:


我想出了一个非常幼稚和低效的方法

使用
lxml
库生成xml后,我处理输出。 下面的代码仅测试用于
lxml
输出,并假设每行有一个标记

output=etree.tostring(
树,
xml_声明=True,
漂亮的印刷品=真的,
encoding=tree.docinfo.encoding,
)
输出=输出。替换(“\”,“\”\n”)
打开(文件名为“w”)作为f:
父项标记行=无
对于i,枚举中的行(output.splitlines()):
行_=行.lstrip(“”)
线路标识=长(线路)-长(线路)
如果父标记行不是无:

如果行识别=0且行[:2]!=“您必须找到lxml使用的transformer serializer实现的文档,并确定它是否具有允许控制此操作的任何参数。我对此深表怀疑。感谢@JimGarrison的建议。我在lxml文档中查找了相关信息,但找不到任何相关信息。我可以在之后轻松地操作字符串标记,但我无法控制属性后的字符串。我还查阅了源代码,以检查是否可以自定义
write()
函数中的
方法
参数,但我没有从中获得任何信息。