GeetYG Ответов: 1

Как получить входные значения, импортировав XSLT в другой XSLT?


Привет,

Надеюсь, я найду здесь решение. Я импортировал файл "Codelist.xsl" в свой другой xslt и пытаюсь вызвать шаблон на основе кодов. В импортированном файле он содержит список значений кода. входные данные содержат коды. Я не могу выполнить xslt на основе входного запроса. Ниже приведен мой xslt, который я попробовал.

Но я получаю пустой ответ.Может ли кто-нибудь, пожалуйста, помочь в этом, так как это наше срочное требование ?

Что я уже пробовал:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version"1.0">
<xsl:import href="local:///CodeList.xsl"/> 
    <xsl:template match="/">
<xsl:variable name="EmpAccountType" select="Employee/EmployeeType/Type/Account/EmpAccountType"/>
            <xsl:variable name="AccountType1">
                                <xsl:call-template name="AccountType">
                                    <xsl:with-param name="AAccountType" select="$EmpAccountType"/>
                                </xsl:call-template>
                            </xsl:variable> 
          
                          <Accounttype>
                            <xsl:value-of select="$AccountType1"/>
                          </Accounttype> 
t;  
    </xsl:template>
    </xsl:stylesheet>


<pre>My imported file contains:

<xsl:template name="AccountType">
        <xsl:param name="AAccountType"/>
        <xsl:choose>
            <xsl:when test="$AAccountType='01'">A</xsl:when>
            <xsl:when test="$AAccountType='02'">B</xsl:when>
            <xsl:when test="$AAccountType='03'">C</xsl:when>            
        </xsl:choose>
</xsl:template>
<pre><xsl:template name="PartnerShipTypecode">
        <xsl:param name="ZPartnerShipType"/>
        <xsl:choose>
            <xsl:when test="$ZPartnerShipType='Collaboration Partner B2C'">Z01</xsl:when>
			<xsl:when test="$ZPartnerShipType='Solution Partner B2B'">Z02</xsl:when>
            <xsl:when test="$ZPartnerShipType='Franchise Partner B2C'">Z03</xsl:when>




My input will be like:

<Employee>
<EmployeeType>
<Type>
<Account>
<EmpAccountType>02</EmpAccountType>
</Account>
</Type>
</EmployeeType>
</Employee>


Мой ожидаемый результат:
<Employee>
<EmployeeType>
<Type>
<Account>
<EmpAccountType>0B</EmpAccountType>
</Account>
</Type>
</EmployeeType>
</Employee>

1 Ответов

Рейтинг:
9

Richard Deeming

URI-адрес вы указали для импорта не является допустимым. Предполагая, что файлы находятся в одной папке, удалите local:/// префикс.


GeetYG

Вообще-то оригинальный путь в <xsl-файл:импорт с href="местный:///создание/DTR_XSL/кодов.тег"&ГТ;. Должен ли я перейти на <xsl:import href="Creation/DTR_XSL/CodeList.xsl" & gt; ? Пожалуйста, поправьте меня.

Richard Deeming

Насколько я могу судить, local: не является зарегистрированной схемой URI. В зависимости от того, где выполняется ваш код, вам может потребоваться указать относительный путь или использовать file: УРИ.

GeetYG

Теперь я получаю новую ошибку: вызов неизвестного шаблона PartnerShipTypecode.

Richard Deeming

В вашем вопросе нет ничего, что могло бы показать, где вы вызываете этот шаблон.

GeetYG

Теперь я добавил недостающий код. Я сократил свой код, так как мой исходный код длинный. Пожалуйста, проверьте.

Richard Deeming

Итак, AccountType шаблон работает, но PartnerShipTypecode а шаблон-нет?

Должно быть, происходит что-то еще. Являются ли оба элемента шаблона прямыми дочерними элементами импортируемого элемента <xsl:stylesheet> узел? Вы дважды проверили регистр имени шаблона?

GeetYG

Я дал неправильный путь для PartnerShipTypecode, так что теперь ошибка исчезла, но в выводе..его отображение пустых тегов. </partnershiptype> И. Но в выводе я должен получить <empaccounttype>B</empaccounttype> Если код 02 и тот же для тега партнерства.

Richard Deeming

Ты звонишь в полицию. AccountType шаблон с надписью $EmpAccountType переменная до того, как вы объявили переменную. Попробуйте переместить строку объявления переменной выше строки объявления переменной. call-template линия.

GeetYG

Сделал изменения. но все равно получаю пустые теги без значений. Не получая ожидаемого результата.

GeetYG

Проблема решена. Спасибо !