如果属性存在于xml的ref url中,如何在xslt中选择条件?

时间:2019-03-25 10:35:32

标签: xml xslt xslt-2.0

我在这里编写了一些代码和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”结尾。 我要选择具有lanuage =“ en”且ref以“ en.pdf”结尾的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 :(得分:0)

布里吉什嗨,请尝试以下代码:

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