in reply to Parsing XML file and removing the element

This won't going to work for nested dummy_records, but you could try something like:
while (<DATA>) { print unless ((/<dummy_record>/../<\/dummy_record>/) || (/<dummy_re +cord\/>/)); } __DATA__ <?xml version="1.0"> <escinfo> <dbf> <progress> <record> <title>11111</title> <id>abcd</id> </record> <record> <title>22222</title> <id>efgh</id> </record> <dummy_record> <dummy> <title>22222</title> <id>efgh</id> </dummy> </dummy_record> <dummy_record/> </progress> </dbf> </escinfo>