1

在这个动态网站上,网址看起来像这样: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>

有什么建议么???谢谢!

4

2 回答 2

1

我会试试这个:

<xsl:value-of select="course/department[@code=$dep]/dept_short_name/text()"/>

这就是说:找到 code 属性是参数“dep”的值的部门元素(在 course 元素内),然后找到 dept_short_name 子元素,然后获取该元素内的文本。

你必须用@来表示“code”是一个属性,但“dep”不应该有它。我认为该{}符号用于样式表的非 XSLT 元素的属性内部,因此我不会在value-of表达式中使用它。

于 2012-10-13T22:29:50.110 回答
1

只需使用

<xsl:value-of select="course/department[@code eq $dep]/dept_short_name"/>

记住

在 XPath 2.0 (XSLT 2.0) 中,使用eq运算符进行值比较——它比一般比较运算符更有效=,只有当它的至少一个操作数是一个序列时才需要使用它。

于 2012-10-13T23:31:54.433 回答