我使用Python脚本在XML文件中添加节点(或复制现有节点)。该脚本使用lxml库。这是现有的片段:
<entitlements>
<bpuiEnabledForSubusers>true</bpuiEnabledForSubusers>
<appCodesAllowedForSubusers>My Accounts,Bill Pay</appCodesAllowedForSubusers>
<enabled>true</enabled>
<monitored>true</monitored>
</entitlements>
所以我使用lxml来复制权利节点中的节点。然后,当我
return etree.tostring(self.root,encoding='unicode', pretty_print=True)
我得到以下xml:
<entitlements>
<bpuiEnabledForSubusers>true</bpuiEnabledForSubusers>
<appCodesAllowedForSubusers>My Accounts,Bill Pay</appCodesAllowedForSubusers>
<enabled>true</enabled>
<monitored>true</monitored>
<appCodesAllowedForSubusersCopy>My Accounts,Bill Pay</appCodesAllowedForSubusersCopy></entitlements>
因此节点被正确复制并添加到子节点的末尾,但是在XML中它没有缩进到它的兄弟级别,并且父级的结束标记在同一行上,甚至虽然我使用了pretty_print选项。虽然生成的XML在技术上是正确的,但它看起来不是很好&#34;根据我们现有的标准。
知道为什么会这样吗?
...谢谢
答案 0 :(得分:1)
pretty_print=True
才有用。因此,您不仅要考虑如何发射它们,还要考虑如何首先解析它们。
使用remove_blank_text=True
解析器选项:
parser = etree.XMLParser(remove_blank_text=True)