我想从html中作为标签的href传递的相对网址重定向到外部网址: 我有以下xml代码
<links>
<link id="faq" text="F.A.Q." url="en/faq/" external="true" />
<link id="contactUs" text="Contacts" url="en/company/contacts/" external="true" />
<link id="termsAndConditions" text="Terms and Conditions" url="en/terms/" external="true" />
</links>
以及以下xslt转换来获取HTML:
<a href="{@url}" title="{@text}" class="page__footer__nav__link">
<xsl:if test="@external = 'true'">
<xsl:attribute name="target">_blank</xsl:attribute>
</xsl:if>
<xsl:value-of select="@text" />
</a>
HTML必须是这样的:
<a href="domain/en/faq" target="_blank" />
用于三个锚标记
答案 0 :(得分:0)
将域字符串存储在参数中,并使用concat()
生成结果URL。
XSLT样式表
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="html" encoding="UTF-8" indent="yes" />
<xsl:param name="domain" select="'www.example.com/'"/>
<xsl:template match="/links">
<hmtl>
<xsl:apply-templates/>
</hmtl>
</xsl:template>
<xsl:template match="link">
<a href="{concat($domain,@url)}" title="{@text}" class="page__footer__nav__link">
<xsl:if test="@external = 'true'">
<xsl:attribute name="target">_blank</xsl:attribute>
</xsl:if>
<xsl:value-of select="@text" />
</a>
</xsl:template>
</xsl:transform>
HTML输出
<hmtl>
<a href="www.example.com/en/faq/" title="F.A.Q." class="page__footer__nav__link" target="_blank">F.A.Q.</a>
<a href="www.example.com/en/company/contacts/" title="Contacts" class="page__footer__nav__link" target="_blank">Contacts</a>
<a href="www.example.com/en/terms/" title="Terms and Conditions" class="page__footer__nav__link" target="_blank">Terms and Conditions</a>
</hmtl>