相关疑难解决方法(0)

当我向已解析的树添加标签时,lxml中的漂亮打印失败

我有一个xml文件,我正在使用lxml中的etree来处理,但是当我向它添加标签时,漂亮的打印似乎不起作用.

>>> from lxml import etree
>>> root = etree.parse('file.xml').getroot()
>>> print etree.tostring(root, pretty_print = True)

<root>
  <x>
    <y>test1</y>
  </x>
</root>
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但现在

>>> x = root.find('x')
>>> z = etree.SubElement(x, 'z')
>>> etree.SubElement(z, 'z1').attrib['value'] = 'val1'
>>> print etree.tostring(root, pretty_print = True)

<root>
  <x>
    <y>test1</y>
  <z><z1 value="val1"/></z></x>
</root>
Run Code Online (Sandbox Code Playgroud)

它不再漂亮了.我还试图"向后"创建z1标签,然后创建z标签并将z1附加到它,然后将z标签附加到x标签.但我得到了相同的结果.

如果我不解析文件并只是一次创建所有标签,它将正确打印.所以我认为它与解析文件有关.

如何让漂亮的印刷工作?

python xml parsing lxml pretty-print

26
推荐指数
1
解决办法
8955
查看次数

PYTHON:如何将根节点添加到XML

我有一个xml文件看起来像这样

<A>
  <B>
     <C>
       ....
     </C>
  </B>
</A>
Run Code Online (Sandbox Code Playgroud)

我想在元素'A'之上添加root.我找到了一种向root添加元素的方法.但是如何更改现有的root并使用python添加它.

将root添加到xml之后,它应该如下所示

<ROOT>
  <A>
    <B>
       <C>
         ....
       </C>
    </B>
  </A>
</ROOT>
Run Code Online (Sandbox Code Playgroud)

python xml lxml elementtree xmlroot

1
推荐指数
1
解决办法
4061
查看次数

标签 统计

lxml ×2

python ×2

xml ×2

elementtree ×1

parsing ×1

pretty-print ×1

xmlroot ×1