Мне впервые было поручено сделать xslt в качестве POC и наткнуться на решение. Вопрос я
имея возможность заменить содержимое узла тем, что возвращается моей функцией, когда происходит совпадение. На
В тот момент, когда у меня возникают проблемы с его объединением, так что исходный текст внутри тега run также не просматривается.
поскольку это должно быть заменено содержанием, определенным моей функцией handle-links, когда тест равен TRUE. michael.hor257k дал
несколько хороших советов по моей проблеме в предыдущем посте, который сейчас закрыт, но я все еще озадачен правильным синтаксисом
Мне нужно подать заявку для достижения желаемого результата. Если бы кто-то мог помочь мне в правильных изменениях, чтобы сделать это
отлично и высоко ценится.
С учетом следующего XML.
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<par def='15'>
<run>
<font size='8pt' name='Verdana' pitch='variable' truetype='true'
familyid='20' color='navy'/>[<a href="www.google.com.au" target="_new">Google</a>]
</run>
</par>
</catalog>
И применение правильного XSLT (с которым мне нужна помощь)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My Transform</h2>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="run">
<font name='Verdana' size='14pt'>
<xsl:call-template name="handle-links">
<xsl:with-param name="txt" select="."/>
</xsl:call-template>
</font>
</xsl:template>
<xsl:template name="handle-links">
<xsl:param name="txt"/>
<xsl:if
test="contains($txt,'[<a')">
<xsl:variable name="quotes">"</xsl:variable>
<!-- Get URL -->
<xsl:variable name="urlVar" select='substring-before(substring-after($txt, $quotes), $quotes)'/>
<!-- Get Link Name -->
<xsl:variable name="linkName" select='substring-before(substring-after($txt, ">"), "<")'/>
<a href="{$urlVar}">
<xsl:value-of select="$linkName"/>
</a>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Я пытаюсь добиться чего-то подобного приведенному ниже, ЕСЛИ И ТОЛЬКО ЕСЛИ test test = "contains ($ txt, '[ true.
<font name='Verdana' size='14pt'>
<a href="www.google.com">Google</a>
</font>
Если тест test="contains($txt,'[<a')">
равен FALSE, тогда я просто хочу, чтобы теги <font name = 'Verdana' size='14pt'> </font>
окружали содержимое text()
элемента run.
Приветствия