Мне нужно использовать ключ, чтобы найти соответствующий узел для другого узла с другого уровня. Я не понимаю, как заменить имя узла ключом, не получив ошибку.Как заменить имя узла ключом в xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:key name = "coursesbygrade" match = "course" use = "grade" />
<xsl:key name = "profbyid" match = "prof" use = "@instid" />
<xsl:output method = "html" />
<xsl:template match = "/">
<html>
<head><link rel = "stylesheet" type = "text/css" href = "./courses.css" /></head>
<body>
<div class = 'container'>
<table>
<xsl:for-each select = "//course[generate-id(.) = generate-id(key('coursesbygrade', grade)[1])]">
<xsl:sort select = "grade" />
<tr>
<td><xsl:value-of select = "grade" /></td>
<td>
<xsl:for-each select = "key('coursesbygrade', grade)">
<xsl:value-of select = "dept" />
<xsl:text> </xsl:text>
<xsl:value-of select = "num" />
<xsl:text> (</xsl:text>
<xsl:value-of select = "//(key('profbyid', 'num[@refinstid]'))/name" />
<xsl:text>)</xsl:text>
Что вы пытаетесь сделать? Есть ли какой-либо входной/выходной XML? Можете ли вы включить остальную часть своего XSLT, чтобы она была действительной? –