У меня есть файл xml, и с помощью преобразования xslt мне нужно сгенерировать следующий файл xml.
<root>
<Entities>
<Classifications>
<classificatie UniqueID="1">
<Name>standaard1</Name>
</classificatie>
<classificatie UniqueID="2">
<Name>bdi</Name>
</classificatie>
<classificatie UniqueID="3">
<Name>lokaal1</Name>
</classificatie>
</Classifications>
<Categories>
<categorie UniqueID="1" id="D0001" super-id="" volgnummer="">
<Name>Beleid vast-/opstellen en Bestuur</Name>
</categorie>
<categorie UniqueID="2" id="D0002" super-id="" volgnummer="">
<Name>Beleid uitvoeren</Name>
</categorie>
<categorie UniqueID="3" id="D0003" super-id="" volgnummer="">
<Name>Beheer en Handhaving</Name>
</categorie>
</Categories>
</Entities>
<Relations>
<Classification_Category ClassficationID="1" CategoryID="2" />
</Relations>
</root>
Используя преобразование xslt, я могу сгенерировать узел сущностей.Чтобы сгенерировать узел отношений, мне нужно сгенерировать UniqueID.Сгенерированный уникальный идентификатор для элементов в узле сущности отсутствует в исходном XML-файле, но создан с использованием XSL-файла.Для генерации уникального идентификатора используется следующий код XSLT ..
<xsl:template match="classificatie">
<xsl:variable name="vNum1">
<xsl:number level="any" count="classificatie"/>
</xsl:variable>
<classificatie>
<xsl:attribute name="UniqueID">
<xsl:value-of select="$vNum1"/>
</xsl:attribute>
<Name>
<xsl:value-of select="@id"/>
</Name>
</classificatie>
</xsl:template>
Для категории также шаблон XLST аналогичен шаблону классификации.В исходном XML-файле узел категории находится в элементе classificatie.
Во вновь сгенерированном XML мне нужно сделать его отдельным элементом в элементе entieties.И связь между ними должна быть установлена в элементах "Relations".
Я могу генерировать узлы как отдельные узлы под сущностями.И я не могу сгенерировать элементы в узле "Relations", используя только что сгенерированные идентификаторы.
Вкратце: преобразование отношения родитель-потомок (вложенное отношение) с не вложенными элементами. -Rajesh
Исходные файлы XML и xslt архивируются по следующему адресу Zip-файлы
Обновление по ссылке : уменьшение входного сэмпла
<root>
<classificaties>
<classificatie id="standard">
<categorieen>
<categorie id="D0001" super-id="">Category1</categorie>
<categorie id="D0002" super-id="">Category2</categorie>
<categorie id="D0003" super-id="">Category3</categorie>
<categorie id="D0004" super-id="D0001">Category1.1</categorie>
<categorie id="D0005" super-id="D0001">Category1.2</categorie>
<categorie id="D0007" super-id="D0002">Category2.1</categorie>
<categorie id="D0021" super-id="D0003">Category3.1</categorie>
<categorie id="D0025" super-id="D0002">Category2.2</categorie>
</categorieen>
</classificatie>
<classificatie id="bdi">
<categorieen>
<categorie id="MLF0000002"
super-id="" volgnummer="1">Test 1</categorie>
<categorie id="MLF0000003"
super-id="" volgnummer="2">Test 2</categorie>
<categorie id="MLF0000017"
super-id="MLF0000003" volgnummer="1">Test 17</categorie>
<categorie id="MLF0000020"
super-id="MLF0000002" volgnummer="2">Test 20</categorie>
<categorie id="MLF0000021"
super-id="MLF0000002" volgnummer="3">Test 21</categorie>
<categorie id="MLF0000025"
super-id="MLF0000003" volgnummer="2">Test 25</categorie>
<categorie id="MLF0000027"
super-id="MLF0000003" volgnummer="3">Test 27</categorie>
<categorie id="MLF0000030"
super-id="MLF0000003" volgnummer="4">Test 30</categorie>
<categorie id="MLF0000031"
super-id="MLF0000003" volgnummer="5">Test 31</categorie>
</categorieen>
</classificatie>
</classificaties>
</root>