<xsl:param name="file1" select="document('Category.xml')"/>
<xsl:template match="/">
<xsl:variable name="JobCategory" select="normalize-space(user:replaceCategoryChar(JobCategoryId))" />
<xsl:variable name="JobOccupation" select="normalize-space(user:replaceCategoryChar(JobOccupationId))" />
<xsl:variable name="y"><xsl:value-of select="$file1//feeds/MedicalHealth/Nursing/JobCategoryId" /></xsl:variable>
<xsl:variable name="z"><xsl:value-of select="concat('$file1//feeds/',$JobCategory, '/' ,$JobOccupation,'/JobCategoryId')"/></xsl:variable>
</xsl:template>
示例XML
<MedicalHealth>
<Nursing>
<JobCategoryId>XX</JobCategoryId>
</Nursing>
</MedicalHealth>
问题和问题: - JobCategory从不同的查询中获取文本即将到来。 (即MedicalHealth) - JobOccupation从不同的查询中获取文本即将到来。 (即护理)
当我打印变量&#34; y&#34;它正确地从XML中选择值。即:: XX 但是,当我尝试打印变量&#34; z&#34;是按原样打印xPath。即:$ file1 // feeds / MedicalHealth / Nursing / JobCategoryId
我试着把下面的东西放进去
在$ JobCategory处出现$ $错误:意外令牌&#39; $&#39;在表达中。
有人可以提供帮助吗?
答案 0 :(得分:0)
据我所知,你不能用XSLT做到这一点。例如:
我想获取名称等于的变量的值 在当前节点中找到的“id”属性的值。你不能。 在XSLT中没有办法构造XPath表达式(例如 变量引用)在运行时。
您的示例与上述声明类似。请参阅参考资料:http://www.dpawson.co.uk/xsl/sect2/nono.html#d1874e40