在这个充满活力的网站上, 网址看起来像这样:departments / CHEM.html
CHEM是一个参数。
<xsl:param name="dep" select="'CHEM'" />
xml的一部分在
之下<course acad_year="2012" cat_num="5085" offered="Y">
<term term_pattern_code="1" fall_term="Y" spring_term="N">fall term</term>
<department code="CHEM">
<dept_long_name>Department of Chemistry and Chemical Biology</dept_long_name>
<dept_short_name>Chemistry and Chemical Biology</dept_short_name>
</department>
</course> ....
我正在尝试将dept_short_name用于我的H1标签,但我还没有成功。到目前为止我试过了
<h2><xsl:value-of select="course/department/[code={@$dep}]"/></h2>
任何建议???谢谢!
答案 0 :(得分:1)
我会试试这个:
<xsl:value-of select="course/department[@code=$dep]/dept_short_name/text()"/>
这就是说:找到其代码属性为参数“dep”的值的department元素(在course元素中),然后找到dept_short_name子元素,然后获取该元素内的文本。
您必须使用@
来说“代码”是一个属性,但“dep”不应该拥有它。我认为{}
符号用于样式表的非XSLT元素的属性内部,因此我不会在value-of
表达式中使用它。
答案 1 :(得分:1)
只需使用:
<xsl:value-of select="course/department[@code eq $dep]/dept_short_name"/>
<强>记住强>:
在XPath 2.0(XSLT 2.0)中使用eq
运算符进行值比较 - 它比一般的比较运算符=
更有效,它至少只需要使用一个它的操作数是一个序列。