我的代码无法从输入XML返回值。变量名称基于字符串映射到单独的xml中。
步骤1:我需要从另一个映射XML中提取XML标记。 (我得到了它)
步骤2:XML标记保存在变量中并使用根标记,我无法获取值
这是XSLT:
<xsl:template match="SUBSCRIBER">
<xsl:variable name="expiry_date" select="$docStringAccountMapping/STRING_ACCOUNTS_LIST/STRING_ACCOUNTS_INFO[NSN_STRING='ThirdAccount']/AEXPIRY_DATE"/>
<!-- this returns a string "EXPIRY_DATE_1" -->
<xsl:value-of select="SUBSCRIBER/$expiry_date"/>
</xsl:template>
这是XML:
<SUBSCRIBER>
<EXPIRY_DATE_1>2014-07-09 23:59:59</EXPIRY_DATE_1>
</SUBSCRIBER>
答案 0 :(得分:4)
首先,您可能不想选择&#34; SUBSCRIBER
......任何事情&#34;如果您的模板与SUBSCRIBER
匹配。当前节点将是SUBSCRIBER
元素,因此从那里开始您的XPath。然后...
如果$expiry_date
包含完整的元素名称,包括命名空间组件:
<xsl:value-of select="*[name()= $expiry_date]"/>
如果$expiry_date
仅包含元素的本地名称,不包括命名空间组件:
<xsl:value-of select="*[local-name()= $expiry_date]"/>