Xml 如何在xslt中用键替换节点的名称
我需要使用一个键来找到对应的节点到不同级别的不同节点。我不明白如何用密钥替换节点名而不出错Xml 如何在xslt中用键替换节点的名称,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,我需要使用一个键来找到对应的节点到不同级别的不同节点。我不明白如何用密钥替换节点名而不出错 <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" m
<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>
(
)
如果没有更多信息,例如您试图实现的目标,甚至错误消息实际上是什么,我猜您的问题在于这一行
<xsl:value-of select = "//(key('profbyid', 'num[@refinstid]'))/name" />
因此,它获取num元素的refinstid属性的值,并使用键查找匹配的prof节点,然后返回其名称,您试图做什么?有任何输入/输出XML吗?您能否包含XSLT的其余部分以使其有效?
<xsl:value-of select = "key('profbyid', num/@refinstid)/name" />