为什么我没有得到价值

时间:2016-06-24 12:41:04

标签: xml xslt

我的输入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&amp;pRespApplId=$pRespApplId&amp;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&amp;pRespApplId=$pRespApplId&amp;pSecurityGroupID=$pSecurityGroupID'"

有人可以纠正我在这里缺少的东西吗?

1 个答案:

答案 0 :(得分:1)

您的变量newURI只是设置一个字符串值。它不会评估字符串中的任何变量引用。

您可以尝试使用concat函数,并为要评估的变量设置单独的参数

<xsl:variable
     name="newURI" 
     select="concat('pRespId=', $pRespId, '&amp;pRespApplId=', $pRespApplId, '&amp;pSecurityGroupID=', $pSecurityGroupID)"/>