我试图通过参数中的内容过滤XML。 什么是正确的sintax匹配只有那些dep_code等于'某事'或在这种情况下$ department ???
的课程XML结构
<course>
<dep_code></dep_code>
<catalog_number></catalog_number>
<course_group></course_group>
<term></term>
<offered></offered>
<course_type></course_type>
<course_level></course_level>
<title></title>
<course_number></course_number>
<meeting_text></meeting_text>
<faculty_text></faculty_text>
<description></description>
<prerequisites></prerequisites>
</course>
参数定义
<xsl:param name="department" select="'All'" />
我尝试过的代码 我试过这个:
<xsl:template match="course/dep_code/{$department}">
还有:
<xsl:template match="course/dep_code/$department">
<xsl:template match="course/dep_code eq $department">
我继续收到如下语法错误:
提前致谢
答案 0 :(得分:6)
示例XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<courses>
<course>
<dep_code>not_it</dep_code>
<catalog_number></catalog_number>
<prerequisites></prerequisites>
</course>
<course>
<dep_code>something</dep_code>
<catalog_number></catalog_number>
<prerequisites></prerequisites>
</course>
</courses>
示例XSLT
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>dep_code</th>
</tr>
<xsl:for-each select="courses/course">
<xsl:if test="dep_code[text()='something']">
<tr>
<td><xsl:value-of select="dep_code"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
结果
<html>
<body>
<table border="1">
<tr><th>dep_code</th></tr>
<tr><td>something</td></tr>
</table>
</body>
</html>