Это лучше всего продемонстрировать на коротком примере.
Основной XML:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
</cd>
</catelo>
Вторичный XML, назовем его localisation.es.xml
.
<?xml version="1.0" encoding="UTF-8"?>
<localisation lang="es">
<field id="title">Título</field>
<field id="artist">Artista</field>
</localisation>
Желаемый вывод:
<html>
<table>
<thead>
<tr> <td>Título</td> <td>Artista</td> </tr>
</thead>
<tbody>
<tr> <td>Empire Burlesque</td> <td>Bob Dylan</td> </tr>
<tr> <td>Hide your heart</td> <td>Bonnie Tyler</td> </tr>
</tbody>
</table>
</html>
Как видите, данные поступают из основного файла XML, а строки локализации для имен полей - из вторичного XML. Как написать XSLT для рассмотрения дела?
Кроме того, что если поля неизвестны XSLT? Скажем, кто-то добавил новое поле <year>
для каждой записи в основном XML и добавил строку для него в localisation.es.xml
:
<field id="year">Año</field>
Можно ли сгенерировать желаемый результат без изменения файла XSLT?
Спасибо.