2014-02-07 48 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