如何使用嵌入式 Xslt 文件实现相同的功能?
答案:
Microsoft 的 XSLT 处理器都不支持嵌入式 XSLT 样式表。您将需要一个完整的、仅限 XSLT 的文件用于您的 XSLT 样式表。
在 XSLT 中,人们使用<xsl:key>
指令和key()
函数通过某个字符串值有效地选择节点,从而唯一地标识它们。
这种转变:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:key name="UriSourceByKey"
match="@UriSource" use="../@x:Key"/>
<xsl:variable name="vImageFunTime"
select="key('UriSourceByKey', 'ImageFunTime')"/>
<xsl:template match="/">
<xsl:value-of select="$vImageFunTime"/>
</xsl:template>
</xsl:stylesheet>
应用于此 XML 文档时:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<BitmapImage x:Key="ImageFunTime" UriSource="../Resources/Images/ImageFunTime.png" />
</ResourceDictionary>
产生想要的结果:
../Resources/Images/ImageFunTime.png