我有一个IDE生成的XML文件;然而,遗憾的是,输出带有换行符的代码作为BR,并且似乎随机决定在哪里放置换行符。例如:
if test = true
foo;
bar;
endif
在XML文件中成为以下XTML:
<body>
<p>if test = true<br /> foo;<br /> bar;<br />endif
</p>
</body>
我正在尝试使用lxml在python中为这些文件制作预处理器,以便更容易对它们进行版本控制。但是,我无法想象将XML修改为文本,以便我可以将每个BR放在它自己的行上,如下所示:
<body>
<p>if test = true
<br /> foo;
<br /> bar;
<br />endif
</p>
</body>
如何将xml编辑为文本,或者如果失败,是否有其他方法可以获得上述结果?
答案 0 :(得分:0)
一种选择是在p
标记的文本和br
标记尾部添加换行符。例如:
from lxml import html
data = """
<html>
<body>
<p>if test = true<br /> foo;<br /> bar;<br />endif
</p>
</body>
</html>
"""
tree = html.fromstring(data)
p = tree.find('.//p')
p.text += '\n'
for element in tree.xpath('.//br'):
element.tail += '\n'
print html.tostring(tree)
打印:
<html>
<body>
<p>if test = true
<br> foo;
<br> bar;
<br>endif
</p>
</body>
</html>