Я хочу написать шаблон для обработки некоторого раздела и его повторного использования.Создание многоразового шаблона в xslt для обработки нескольких элементов, которые происходят несколько раз
В приведенном ниже XML мы видим, что сообщение повторяется в каждом. Я хочу написать шаблон для обработки и назвать его когда когда-либо понадобится.
<Data>
<A>
<text>this is text</text>
<Message>
<local>Local link</local>
<STD>External link</STD>
</Message>
</A>
<B>
<info>Information</info>
<Message>
<local>Local uri link</local>
<STD>External link uri</STD>
</Message>
</B>
<C>
<longtext>Long Text</longtext>
<Message>
<local>Local uri link</local>
<STD>External link uri</STD>
</Message>
</C>
<Data>
Выход необходимо:
<Information>
<AA>
this is text
<MSG local value="Local uri link" STD value="External link"/>
</AA>
<BB>
Information
<MSG local value ="Local uri link" STD value="External link"/>
</BB>
<CC>
Long Text
<MSG local value="Local uri link" STD value="External link"/>
</CC>
<Information>
При обработке тега в каждом узле, я пишу код для каждого тегов A, B, C.
Пример кода, написанного
<Information>
<xsl:template match="A">
<AA>
<xsl:value-of select="text"/>
<xsl:element name="MSG">
<xsl:attribute name="local value">
<xsl:value-of select="Message/local"/>
</xsl:attribute>
<xsl:attribute name="STD value">
<xsl:value-of select="Message/STD"/>
</xsl:attribute>
</AA>
</Information>
Аналогично для каждого шаблона я явно пишу код для блока MSG.
Теперь я хочу написать отдельный шаблон для обработки. И я хочу назвать этот шаблон из каждого шаблона.
В основном я хочу, чтобы повторно использовать код, написанный для обработки
Может ли один помочь мне, как это сделать.
спасибо.
Благодарим за предоставленную информацию. Есть ли возможность написать шаблон для обработки тега сообщения отдельно и вызвать его, когда это необходимо, путем передачи текста. – Patan
просто. при прохождении параметра i нужно передать все дерево xml под тегом Message –
Patan
@ User222, это совсем не ясно, что вы хотите, какое требование не соответствует решению Мартина? –