Как выбрать условие в xslt, если атрибут существует в ref url в xml? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть некоторый код написан и XML согласно здесь:

<section label="docs">
        <presentation>
          <mini-site title="Documents"/>
          <power-page title="Product Documents"/>
        </presentation>
        <content template="document-gallery">
          <document lanuage="en" ref="http://manuals.frigidaire.com/prodinfo_pdf/Springfield/TIMSEB471MRR1en.pdf" title="Complete Owner's Guide"/>
          <document lanuage="en" ref="http://manuals.frigidaire.com/prodinfo_pdf/Springfield/5995709499.pdf" title="Wiring Diagram"/>
          <document lanuage="en, es, fr" ref="http://manuals.frigidaire.com/prodinfo_pdf/Springfield/TINSEB472MRR0.pdf" title="Installation Instructions"/>
          <document lanuage="en" ref="http://manuals.frigidaire.com/prodinfo_pdf/Specsheets/E30MO65GSS_1213_EN.pdf" title="Product Specifications Sheet"/>
        </content>
      </section>

В URL «ref» он заканчивается «en.pdf» и lanuage = «en». Я хочу выбрать те PDF, которые имеют lanuage = "en" и ref заканчивается на "en.pdf".

Вот что я написал:

<xsl:template match="document">
    <xsl:if test="select[(@lanuage,'en') and ends-with(@ref,'en.pdf')]">
        <xsl:variable name="href" select="js:call($resource-to-collect,string(@ref))"/>
        <a type="{name()}" href="{$href}"><xsl:apply-templates select="@* except(@ref)"/><xsl:apply-templates select="node()"/></a>
    </xsl:if>
</xsl:template>

Но это дает мне вывод, у которого есть lanuage = "en", пожалуйста, предложите мне это.

1 Ответ

0 голосов
/ 27 марта 2019

Привет, Брижеш, попробуй этот код:

    <xsl:template match="document">
    <xsl:if test="(@lanuage[.]='en') and (ends-with(lower-case(@ref[.]),'en.pdf'))">
        <document>
            <xsl:attribute name="language" select="./@language"/>
            <xsl:attribute name="ref" select="./@ref"/>
        </document>
    </xsl:if>
</xsl:template>
...