我的输入XML是:
<urp>
<pRespId>2345</pRespId>
<pRespApplId>800</pRespApplId>
<pSecurityGroupID>0</pSecurityGroupID>
</urp>
我试图使用下面的XSL填充一些变量值:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="pRespId" select="urp/pRespId" />
<xsl:variable name="pRespApplId" select="urp/pRespApplId" />
<xsl:variable name="pSecurityGroupID" select="urp/pSecurityGroupID" />
<xsl:variable name="newURI" select = "'pRespId=$pRespId&pRespApplId=$pRespApplId&pSecurityGroupID=$pSecurityGroupID'"/>
</xsl:template>
</xsl:stylesheet>
但不知怎的,我无法获得pRespId,pRespApplId&amp; newURI中的pSecurityGroupID。它总是在向我展示
pRespId=$pRespId&pRespApplId=$pRespApplId&pSecurityGroupID=$pSecurityGroupID
而不是:
pRespId=2345&pRespApplId=800&pSecurityGroupID=0
我知道我错过了这一行:
<xsl:variable name="newURI" select = "'pRespId=$pRespId&pRespApplId=$pRespApplId&pSecurityGroupID=$pSecurityGroupID'"
有人可以纠正我在这里缺少的东西吗?
答案 0 :(得分:1)
您的变量newURI
只是设置一个字符串值。它不会评估字符串中的任何变量引用。
您可以尝试使用concat
函数,并为要评估的变量设置单独的参数
<xsl:variable
name="newURI"
select="concat('pRespId=', $pRespId, '&pRespApplId=', $pRespApplId, '&pSecurityGroupID=', $pSecurityGroupID)"/>