xsl 使用变量获取其他变量的值

戎马一生x 2018-01-24 02:38:24
现在定义了一个模版key_value, 存放一些值, 然后我想调用这个模版并传入参数, 取出相应的值出来.

<xsl:call-template name="key_value">
<xsl:with-param name="key" >手机</xsl:with-param>
</xsl:call-template>
------------------------------------------------------------------------------------------------------------------------------------
<xsl:template name="key_value">
<xsl:param name="key" />
<xsl:variable name="手机" >phone</xsl:variable>
固定值获取值:<xsl:value-of select="$手机"></xsl:value-of>
<br/>
变量获取值:<xsl:value-of select="$key"></xsl:value-of>
</xsl:template>

输出效果 :
固定值获取值:phone
变量获取值: 手机

理想效果:
固定值获取值:phone
变量获取值: phone

我是想通过变量获取相应变量名称的值. 大神求解!

...全文
742 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rickylin86 2018-01-28
  • 打赏
  • 举报
回复
可以考虑用下面这种方式来处理

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<stylesheet 
	version="2.0"
	xmlns="http://www.w3.org/1999/XSL/Transform"
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:myParam="http://www.ricky.com/param">

	<template name="main">
		<call-template name="myTemplate">
			<with-param name="variableName" select="'param1'"/>
		</call-template>
	</template>

	<template name="myTemplate">
		<param name="variableName" as="xs:string"/>
		
		<variable name="results">
			<params xmlns="http://www.ricky.com/param">
				<param name="param1" value="value1"/>
				<param name="param2" value="value2"/>
				<param name="param3" value="value3"/>
				<param name="param4" value="value4"/>
			</params>
		</variable>

		result:<value-of select="$results/myParam:params/myParam:param[@name=$variableName]/@value"/>

	</template>
</stylesheet>
文盲老顾 2018-01-25
  • 打赏
  • 举报
回复
<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">
<xsl:template match=""/"">
    <xsl:call-template name=""key_value"">
        <xsl:with-param name=""key"" >test</xsl:with-param>
    </xsl:call-template>
</xsl:template>
    <xsl:template name=""key_value"">
        <xsl:param name=""key""  />
        <xsl:variable name=""手机"" >phone</xsl:variable>
        <xsl:variable name=""mobile"" >13800138000</xsl:variable>
    固定值获取值:<xsl:value-of select=""$手机"" />
    <br/>
    变量获取值:<xsl:value-of select=""$key"" />
    <br/>
    测试获取值:
<xsl:choose>
<xsl:when test=""$key = 'mobile'"">
<xsl:value-of select=""$mobile"" />
</xsl:when>
<xsl:when test=""$key = '手机'"">
<xsl:value-of select=""$手机"" />
</xsl:when>
<xsl:otherwise>
未定义的变量
</xsl:otherwise>
</xsl:choose>
    </xsl:template>
</xsl:stylesheet>
用了笨办法
戎马一生x 2018-01-24
  • 打赏
  • 举报
回复
凉凉的, 没人回复. 有其他方法也行.

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧