[我看过类似的问题,但我没有找到答案,请不要在没有实际阅读的情况下标记副本]
如何使用xslt中的savetype
内容选择节点。
例如在此示例中savetype=dexterity
所以我想要
<xsl:value-of select="/root/character/abilities/dexterity/bonus"/>
无论如何在没有<xsl:choose>
语句的情况下执行此操作,我可以从savetype
示例文件
<?xml version="1.0" encoding="iso-8859-1"?>
<root version="3.1" release="7|CoreRPG:3">
<character>
<abilities>
<charisma>
<bonus type="number">-1</bonus>
</charisma>
<constitution>
<bonus type="number">2</bonus>
</constitution>
<dexterity>
<bonus type="number">2</bonus>
</dexterity>
</abilities>
<powers>
<id-00005>
<actions>
<id-00001>
<savetype type="string">dexterity</savetype>
</id-00001>
</actions>
</id-00005>
</powers>
</character>
</root>
答案 0 :(得分:2)
我可以从savetype
的值构建XPATH语句
是。尝试:
<xsl:value-of select="/root/character/abilities/*[name()=//savetype]/bonus" />
另一种选择是使用密钥。在样式表的顶层定义一个键:
<xsl:key name="k" match="abilities/*" use="name()" />
然后使用:
<xsl:value-of select="key('k', //savetype)/bonus" />