【问题标题】:How to get tag value from input XML where tag name is stored in a variable如何从标签名称存储在变量中的输入 XML 中获取标签值
【发布时间】:2014-08-24 20:21:45
【问题描述】:

我的代码无法从输入 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>

【问题讨论】:

    标签: xml xslt xslt-2.0


    【解决方案1】:

    首先,如果您的模板匹配SUBSCRIBER,您可能不想选择“SUBSCRIBER...anything”。当前节点将是一个SUBSCRIBER 元素,因此从那里启动您的XPath。那么……

    如果$expiry_date 包括完整的元素名称,包括命名空间组件:

    <xsl:value-of select="*[name()= $expiry_date]"/>
    

    如果$expiry_date 仅包含元素的本地名称,不包括命名空间组件:

    <xsl:value-of select="*[local-name()= $expiry_date]"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多