我試圖去除位於標籤< KEYS>和</KEYS>之間的XML文件中的所有行。perl單線程抓取xml文件中的所有「鍵」
截至我已經得到了一個正則表達式,將在文件中鍵的第一塊匹配,但它不會繼續在文件中匹配其他塊的問題第一遍。我已經嘗試添加「/ G」的正則表達式,我已經試過「-0777」,以啜整個文件一次也不招有什麼差別。下面是Perl的一個班輪:
perl -00 -ne 'print $1 if /(\s+\<KEYS\>\n\s+.*?\n\s+\<\/KEYS\>)/s' someFile.xml
,我得到這樣的輸出:
<KEYS> <KEY name="cone_id" type="long" nativeType="number(17)"/> <KEY name="bar_id" type="long" nativeType="number(32)"/> <KEY name="foo_type" type="int" nativeType="number(3)"/> </KEYS>
如上所述有很多文件中的多個塊(這是近五千名線長),但Perl代碼不與任何剩下的搞亂。
有什麼建議嗎?
使用XML解析器::; –
是的,我想有人會建議,但我根本不關心xml結構。我只是剝離出剛好是xml的文本塊。如果這是簡單的舊英語,而且標籤只是單詞,我會遇到同樣的問題。這個問題在整個事件中引發了另一個循環,所以它只是在整個文件中重複正則表達式。 –