Now we have 2 files, but I still have no idea what the resulting "merged" file should look like. It could be:
<Z><A id="a1">...</A><A id="a2">...</A></Z>
which would be quite easy to do, you don't even need Perl for this, but it could also be a file where only
D elements are added according to conditions on various tags/attributes...
What system are you trying to install XML::Parser on? Versions up to 2.29 include expat, so all you need is a C compiler, gcc works fine, to install the module. The only problem you can find is that it can collide with the static install of expat done by Apache. So version 2.30 comes without expat, which you have to install (you can find expat on sourceforge here).