Разница XML в Perl
У меня есть два XML-файла, один из которых является старым XML-файлом, а другой - новым XML-файлом. Я хочу напечатать разницу между файлами
Я хочу вывод, как это:
если содержание изменилось Степень на B.com, это обновленные данные
если атрибут был изменен, считается вновь добавленными данными
Пример вывода:
UPDATED DATA:
in the "joindef" in the entry name =
"Hardware" in the option name ="Graduation" content Degree was changed to B.com
NEWLY ADDED DATA:
in the "join_def" entry name "VHDL" is added.
in the "join_def" in the entry name "Software" option name "Location" is added.
ФАЙЛ OLDXML:
<ls_new>#mainblock
<new_def>#subblock1
............
............
............
</new_def>
<join_def>
<entry name="Software">
<option name="Graduation">B.tech</option>
<member>year=2011</member>
<option name="PostGraduation">M.tech</option>
<option name="JobNum">50</option>
</entry>
<entry name="Hardware">
<option name="Graduation">Degree</option>
<member>year=2011</member>
<option name="PostGraduation">MCA</option>
<option name="JobNum">100</option>
</entry>
</join_def>
<old_def>#subblock3
............
............
............
</old_def>
</ls_new>
ФАЙЛ NEWXML:
<ls_new>#mainblock
<new_def>#subblock1
............
............
............
</new_def>
<join_def>
<entry name="Software">
<option name="Graduation">B.tech</option>
<member>year=2011</member>
<option name="PostGraduation">M.tech</option>
<option name="JobNum">50</option>
<option name="Location">india</option>
</entry>
<entry name="Hardware">
<option name="Graduation">B.com</option>
<member>year=2011</member>
<option name="PostGraduation">MCA</option>
<option name="JobNum">100</option>
</entry>
<entry name="VHDL">
<option name="Graduation">B.com</option>
<member>year=2011</member>
<option name="PostGraduation">MCA</option>
<option name="JobNum">150</option>
</entry>
</join_def>
<old_def>#subblock3
............
............
............
</old_def>
</ls_new>
Я новичок в Perl. Может кто-нибудь, пожалуйста, помогите мне в этом?
1 ответ
В Perl доступны модули для преобразования данных XML в хеш Perl.
Perl чрезвычайно удобен для XML, учитывая количество модулей, доступных в CPAN для этого.
В этом случае я бы использовал модуль XML::Hash.
Учитывая, что теперь у вас есть два хэша с парами ключ-значение.
Вы можете перебирать старые ключи хеша, искать значения в новом хеше и распечатывать результаты по мере необходимости.