2013-04-16 83 views
-2

這裏我試圖用perl正則表達式在一個XML文件中查找和替換文本內容。多行查找(grapping)並用perl替換XML文件中的文本

示例XML代碼:

<root> 
<add> 
<st>xxxx</st> 
<pin>xxx</pin> 
</add> 
</root> 

現在我想找到<add>/grep的文字</add>和替換<xyz> XXX </xyz>

<add> 
<st>xxxx</st> 
<pin>xxx</pin> 
</add> 

注:

如果以上內容是單行我的意思是在<add></add>之間沒有換行符,a s <add><st>xxxx</st><pin>xxx</pin></add>我可以使用<add>(.*)<\/add>來查找/ grep。


感謝你

Thirusanguraja V

+3

你爲什麼想用正則表達式來解決這個問題?我認爲它很容易將xml導入到散列(也許使用'XML :: Simple',然後將其導出到xml以及? – 2013-04-16 15:08:10

+0

你的前後不符合你所說的要求。 – TLP

+0

沒有' xxx'你可以在你的例子中替換,你能給出一個相關的例子嗎? – ikegami

回答

0

使用XML::XSH2,圍繞XML::LibXML包裝:

open input.xml ; 
$add = /root/add ; 
delete $add/* ; 
insert element xyz into $add ; 
insert text 'xxx' into $add/xyz ; 
save :b ; 
+0

它確定。但是我想在文本模式下閱讀這個xml文件,並且我想使用regexp來執行這些功能,所以請嘗試理解我。 –

+0

只要考慮給出示例代碼作爲原始文本,並執行查找和替換。 –