2015-01-28 2 views
-1

Я хочу, чтобы перенаправить на внешний URL из относительного URL, переданного в качестве HREF в качестве тега в HTML: У меня есть следующие XML-кодКак я могу перенаправить на внешний URL с помощью XSL

<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

Пожалуйста, пост полной таблицы стилей XSLT, вместе с кодом XHTML вы ожидаете в результате. –

+0

И откуда происходит «домен»? Пожалуйста, напишите полный код. –

+0

домен является веб-страницей, просто пример, но домен будет чем-то вроде www.xxxxxx.xx – ncr07

ответ

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 Output

<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> 
+0

спасибо за ответ, вот что я хочу ... ура – ncr07

Смежные вопросы