我正在尝试创建XSL转换。
我的XML看起来像这样:
<DataRepository>
<Contents>
<Content uniqueID="1" name="some.name" ...>
<Description>Content description</Description>
</Content>
...
</Contents>
<Tests>
<Test>
<Content uniqueID="1"/>
<Content uniqueID="2"/>
<Content uniqueID="N">
</Test>
...
</Tests>
</DataRepository>
在转换后的文档中,我想通过显示内容描述来呈现测试内容 XLS代码片段负责:
<xsl:for-each select="DataRepository/Tests/Test">
<h2><u><xsl:value-of select="@name"/></u></h2>
<ol>
<xsl:for-each select="Content">
<li><xsl:value-of select="//DataRepository/Contents/
Content[@uniqueID='{@uniqueID}']/Description"/></li>
</xsl:for-each>
</ol>
</xsl:for-each>
我在输出中得到空行,没有显示说明。
如果我用实际数字替换{@uniqueID}
,它就会起作用。
你能否建议我做错了什么?
答案 0 :(得分:3)
使用current()
函数引用当前节点的uniqueID
属性:
<xsl:value-of select="/DataRepository/Contents/
Content[@uniqueID=current()/@uniqueID]/Description"/>