2014-02-07 49 views
0

我试图把这个单独的行:拆分XML到使用LXML

<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。我很新,也很感激任何资源。

+0

这是什么意思? –

+0

我正在使用此输出来区分可能没有一致的空白空间的大型XML文件。 – CSStudent

+0

然后看看这个:http://stackoverflow.com/questions/1871076/are-there-any-free-xml-diff-merge-tools-available。你不应该使用字符串操作来比较xml。 –

回答

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> 
+0

这不起作用,但我不能使用正则表达式来编辑xml。我知道,这似乎没有道理,但我真的不想找讲座。只是寻找一种方法来纯粹使用XML解析器。 – CSStudent