Извините, я публикую это снова, но множество требований было изменено, и мне нужен совет.
Мой первый входной файлСоздание XML-файла в Perl - Обновленные требования
Root1 TBLA KEY1 COLA A B
Root1 TBLA KEY1 COLB D E
Root1 TBLA KEY3 COLX M N
Root2 TBLB KEY4 COLX M N
Root2 TBLB KEY4 COLD A B
Root3 TBLC KEY5 COLD A B
Мой второй входной файл
Root1 TBLA KEY6
Root2 TBLB KEY7
Root3 TBLC KEY8
Мой третий входной файл
Root1 TBLA KEY9
Root1 TBLA KEY10
Root3 TBLC KEY11
В основном Файл представление
1) Первый файл представляет собой старые и новые значения. Во-первых, это таблица корней, вторая - фактическая таблица, в которой существует diff. Третий столбец сообщает значение ключа. Четвертый и пятый представляет собой старую и новую ценность.
2) Второй файл представляет собой первичный ключ, который существует только в db1, а не в db2. Сначала это корневая таблица, вторая - фактическая таблица, в которой существует ключ. Третья колонка сообщает значение ключа
3) Третий файл представляет собой первичный ключ, который существует только в db2, а не в db1. Сначала это корневая таблица, вторая - фактическая таблица, в которой существует ключ. Третья колонка показывает значение ключа
Вывод, который будет создан в формате XML, как
<Data>
<Root1>
<TBLA>
<NEW1>
<KEY>KEY6</KEY>
<NEW1>
<NEW2>
<KEY>KEY9</KEY>
<KEY>KEY10</KEY>
<NEW2>
<MODIFIED>
<KEY name =KEY1>
<COLA>
<oldvalue>A</oldvalue>
<newvalue>B</newvalue>
</COLA>
<COLB>
<oldvalue>D</oldvalue>
<newvalue>E</newvalue>
</COLB>
</KEY>
<KEY name =KEY3>
<COLX>
<oldvalue>M</oldvalue>
<newvalue>N</newvalue>
</COLX>
</KEY>
</MODIFIED>
</TBLA>
</Root1>
<Data>
ЭТО НЕ ПОЛНЫЙ ВЫХОД. ЧАСТЬ ВЫХОДА ОТОБРАЖАЕТСЯ Может ли кто-нибудь предложить, какой был бы лучший способ сделать это. Если я сначала конвертирую этот текстовый файл в хэш хэшей, а затем попробую использовать pltoxml()
. Имеет ли это смысл. Может XML::Simple
или XML::Writer
этого достаточно.
Это первый раз, когда я работаю над xml и не знаю, какой подход поможет в эффективном решении.
Небольшой пример по моему запросу будет оценен по достоинству.
* Входной файл всегда будет отсортирован по корневым, а затем TBLNAME
Выходной формат
Output содержит для каждого корня, каждая таблица в этом корень и что для каждой таблицы, ключ, который существует в одном, а затем ключ, существует только во втором. Это относится к разделам new1 и new2 соответственно. Третий раздел содержит Модифицированный, который должен читать из первого входного файла и отображать значение ключа и с этим значением ключа, какие столбцы изменены (их старое и новое значение)
Если мне нужно использовать XML :: Simple, как это сделать создайте hashref из этих файлов, которые я могу передать в XMLout. В любом из этих файлов нет ключа.
Привет, На самом деле мой первоначальный вопрос простой, поэтому я получил некоторые советы по этому поводу. Однако я обновил вопрос с последними комментариями, но не уверен, будет ли он снова проверяться, поскольку люди уже внесли свой вклад в это. Поэтому я снова разместил то же самое с новым вопросом. Я не уверен, обновляю ли я вопрос, на который был дан ответ, снова проверяется экспертами. – user2223335
Вы не должны изменять старые вопросы. Создание нового было правильным. Изменение старого не было. Я вернул старый вопрос до вашего редактирования. – simbabque