xslt - 当变量等于节点名称时,XSLT如何获取值?
问题描述
我继承了一个 XSLT 1.0 项目,但我对 XSLT 了解不多。
我有一个带有代码列表的外部 XML 文件。我想使用这个文件来获取基于变量的节点的值。当 $source = "AFW" 时,我想获得 "XML-AP",而当 $source = "SAGITTA" 时,我想获得 "XML"。
XML 查找文件的部分列表:
<codes name="AcordToMSA_CodeLists">
<Source>
<codes>
<AFW>XML-AP</AFW>
<SAGITTA>XML</SAGITTA>
</codes>
</Source>
</codes>
XML 查找文件的 XSLT:
<xsl:variable name="lookupFileSource" select="document('XSL/AcordToMSA_CodeLists.xml')/codes" />
<Home>
<xsl:variable name="source" select="Top/ClientApp/Name"/>
<xsl:attribute name="Source"><xsl:value-of select="$lookupFileSource/Source/codes[local-name() = 'AFW']"/></xsl:attribute>
</Home>
我上面的属性行返回一个空字符串。当 $source 变量等于节点名称时,我需要做什么来获取节点的值?
解决方案
您需要检查元素 child's local-name
,所以
<xsl:attribute name="Source"><xsl:value-of select="$lookupFileSource/Source/codes/*[local-name() = 'AFW']"/></xsl:attribute>
推荐阅读
- typescript - 打字稿:从类型/接口声明访问属性值
- oauth-2.0 - Google plus 弃用,是否已经实施了基于 OAuth 2.0 的登录流程是否需要进行重大更改?
- reactjs - React Native 高程样式表在 FlatList 中不起作用
- c++ - 'mblctr' 不是内部或外部命令、可运行程序或批处理文件。如何解决此问题?
- javascript - ConnectyCube react native SDK是否支持react native应用程序中的视频/音频调用?
- javascript - .navbar-toggler-icon 没有出现
- sql - 我可以从我的查询中消除内部查询吗
- javascript - 在 ComponentDidUpdate 中无法检测到连接到 Redux Store 的 props 的变化
- jquery - 如何使用数组中的树枝循环将行添加到数据表?
- javascript - 如何从另一个集合中仅检索几个字段