При работе с преобразованием XML я хотел бы объединить несколько XSL, чтобы можно было легко повторно использовать фрагменты кода.
Работает следующее: Gender.xslt
<?xml version="1.0" encoding="iso-8859-1" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/person/gender" name="gender">
<Geslacht>
<Code>
<xsl:apply-templates select="genderCode" />
</Code>
<Omschrijving>
<xsl:if test="genderCode=1">Mannelijk</xsl:if>
<xsl:if test="genderCode=2">Vrouwlijk</xsl:if>
</Omschrijving>
</Geslacht>
</xsl:template>
</xsl:stylesheet>
При применении к следующему XML-файлу:
<?xml version="1.0" encoding="UTF-16" ?>
<person>
<gender>
<genderCode>1</genderCode>
</gender>
</person>
Я получаю следующий ожидаемый результат
<?xml version="1.0" encoding="UTF-8"?>
<Geslacht>
<Code>1</Code>
<Omschrijving>Mannelijk</Omschrijving>
</Geslacht>
Аналогичным образом я преобразую идентификатор:
ID.xslt
<?xml version="1.0" encoding="iso-8859-1" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/person" name="ssin">
<INSZ>
<xsl:apply-templates select="ssin" />
</INSZ>
</xsl:template>
</xsl:stylesheet>
Применимо к
<?xml version="1.0" encoding="UTF-16" ?>
<person>
<ssin>123456789</ssin>
</person>
Дает
<?xml version="1.0" encoding="UTF-8"?>
<INSZ>123456789</INSZ>
Теперь я хотел бы объединить два
Учитывая следующие данные:
<?xml version="1.0" encoding="UTF-16" ?>
<person>
<ssin>1234567891234</ssin>
<gender>
<genderCode>1</genderCode>
</gender>
</person>
Я хотел бы получить следующий результат
<?xml version="1.0" encoding="UTF-8"?>
<Persoon>
<INSZ>1234567891234</INSZ>
<Geslacht>
<Code>1</Code>
<Omschrijving>Mannelijk</Omschrijving>
</Geslacht>
</Persoon>
Моя таблица стилей:
<?xml version="1.0" encoding="iso-8859-1" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="Gender.xslt" />
<xsl:include href="ID.xslt" />
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<Persoon>
<xsl:call-template name="gender" />
<xsl:call-template name="ssin" />
<xsl:apply-imports />
</Persoon>
</xsl:template>
Проблема в том, что вызывается таблица стилей пола, но результат пуст;структура, но нет данных.Часть SSIN работает как шарм.
Любая помощь очень ценится!
Барри