I have heard about XML::LibXML and XML::Parser modules but it seem to be difficult to understand when i saw their documentation. Is there any other modules as well which can solve my problem? Please let me know from where I can start to solve this problem.

Comment on
How to fetch a portion of a XML file to save it in another xml file
Select or Download CodeReplies are listed 'Best First'.

I do think it's time for you to start reading the XML::LibXML docs. See if you can at least get the multiple test nodes captured/found, it's quite a small adjustment. Post what you come up with and if you can't work it all out, I or someone will help you finish.

Oh, ok! You wore me out and I wrote it yesterday and there's no reason for it to die of bitrot in some corner of my disk. I do hope you will try to pick up a little of it and not just get others to write it for you.

The main reason why I suggest this, which BTW is not directly related to Perl (although fully supported by LibXML and hence by the Perl packages that employ it), is that: “extracting elements from an XML document to produce another XML (or HTML) document” is a very generic business requirement. Your browser can do it; so can Excel and many other data analysis tools. All of them are applying XSLT technologies. (A particularly striking example are the “interactive periodic table of the elements” sites, which, if you browse the page source-code, are predominantly using XSLT to cause your browser to do the work.) You might not have to “construct a computer program” to do this ... not at all. If so, that can be a big win.

In essence, an XSLT document is an XML document which contains, among other things, directives which include “XPath expressions” that specify what you are looking for, and surrounding-material which defines the target-document into which these elements will be inserted. It is, admittedly, a cumbersome technology, yet a very powerful one. Yes, Perl fully supports it (through the LibXML-based packages), yet, you do not have to use Perl (nor any other programming language) to avail yourself of it.

I agree that XSLT is the correct way to go, (using XML:LibXSLT), but it imposes a new language: xslt might be quite confronting. OTOH, when you succeed with XSLT, you can be sure the resulting XML is healty.

When that hurdle it too high, a look at XML::LibXML might be the easy alternative. Look at XML::LibXML::Node's documentation for the most complete starting docs.