Структура файла:
И File1.xml, и File2.xml имеют одинаковую структуру.
Файл имеет список / массив ресурсов, а каждый ресурс имеет список / массив кодов.
Каждый код уникально идентифицируется атрибутом «id».
Каждый код имеет атрибут override, который определяет правило переопределения.
Если override = "true", то элемент кода в file1.xml можно заменить на элемент кода в file2.xml.
Я хочу объединить File1.xml с File2.xml, используя xslt с нижеследующими правилами
Если оба файла имеют одно и то же имя ресурса (например, «resource1»), тогда эти коды можно объединить.
Во время операции слияния, если у нас одинаковое значение "id", тогда элемент кода file1 можно заменить ТОЛЬКО элементом code file2, когда override = "true".
<code id="1" field1="value11" field2="value12" override="true" />
<code id="1" field1="value71" field2="value72" override="true" />
For this the result should be
<code id="1" field1="value71" field2="value72" override="true" />
Если override = "false", то мы не заменяем элемент кода.
Для этого результат должен быть
Если у нас есть разные имена ресурсов (например, resource2 в File1.xml и resource3 в File2.xml), то их можно записать так, как они есть в output.xml, как
нечего объединять файлы.
Большое спасибо за проявленный интерес к моему вопросу !!!
File1.xml
<resources>
<resource name="resource1">
<codes>
<code id="1" field1="value11" field2="value12" override="true" />
<code id="2" field1="value21" field2="value22" override="false" />
<code id="3" field1="value31" field2="value32" override="true" />
</codes>
</resource>
<resource name="resource2">
<codes>
<code id="1" field1="value11" field2="value12" override="true" />
</codes>
</resource>
</resources>
File2.xml
<resources>
<resource name="resource1">
<codes>
<code id="1" field1="value71" field2="value72" override="true" />
<code id="2" field1="value81" field2="value82" override="true" />
<code id="4" field1="value91" field2="value92" override="true" />
</codes>
</resource>
<resource name="resource3">
<codes>
<code id="2" field1="value81" field2="value82" override="true" />
</codes>
</resource>
</resources>
output.xml
<resources>
<resource name="resource1">
<codes>
<code id="1" field1="value71" field2="value72" override="true" />
<code id="2" field1="value21" field2="value22" override="false" />
<code id="3" field1="value31" field2="value32" override="true" />
<code id="4" field1="value91" field2="value92" override="true" />
</codes>
</resource>
<resource name="resource2">
<codes>
<code id="1" field1="value11" field2="value12" override="true" />
</codes>
</resource>
<resource name="resource3">
<codes>
<code id="2" field1="value81" field2="value82" override="true" />
</codes>
</resource>
</resources>