如何使用参数或变量值作为节点名称?

use*_*463 7 xslt variables parameters

我试图在select-value中使用参数或变量的值作为节点名称,但到目前为止失败了..

所以我的XML如下所示.

<Data>
 <Name>John Smith</Name>
 <Date>28112012</Date>
 <Phone>iphone</Phone>
 <Car>BMW</Car>
</Data>
Run Code Online (Sandbox Code Playgroud)

我不完整的xslt如下所示.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="2.0"
    exclude-result-prefixes="#all">

<xsl:param name="nodename" select="'Name'"/>

<xsl:template match="/Data">

      <Output>
        <xsl:value-of select="{$nodename}"/>
      </Output>     
</xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望出局

<Output>John Smith</Output>
Run Code Online (Sandbox Code Playgroud)

有什么办法可以用XSLT做到这一点吗?我希望能够根据用户选择选择合适的节点.

谢谢

SK

xia*_*oyi 5

一个疯狂的猜测,让我知道它是否有效:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" exclude-result-prefixes="#all">

<xsl:param name="nodename" select="'Name'"/>
<xsl:template match="/Data">
   <Output>
      <xsl:value-of select="//*[name()=$nodename]" />
   </Output>     
</xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)