使用lxml将xml拆分为单独的行

时间:2014-02-07 01:06:35

标签: python xml whitespace lxml elementtree

我试图改变这一点:

<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>

进入这个:

<note>
<to>
Tove
</to>
<from>
Jani
</from>
<heading>
Reminder
</heading>
<body>
Don't forget me this weekend!
</body>
</note>

使用python库lxml。我对它很陌生,也很感激任何可以学习的资源。

1 个答案:

答案 0 :(得分:0)

虽然可以用lxml解决这个问题,但我认为它最终会变得不必要复杂。它复杂的原因是没有意义。所以,让我们使用不知道bupkus的XML的工具。

假设您将数据放在名为data.xml的文件中,这可能有效:

sed '
  s/</\n</g
  s/>/>\n/g
' data.xml | sed '/^ *$/ d'

这假设GNU sed。第一个sed命令在<之前或>之后添加换行符,第二个删除任何空行。

我仍然认为这是一个可怕的想法,但也许这会奏效。鉴于上面的示例输入,这会产生:

<note>
<to>
Tove
</to>
<from>
Jani
</from>
<heading>
Reminder
</heading>
<body>
Don't forget me this weekend!
</body>
</note>