在我的XML文档中,我正在提取包含图像的<TextBlock>
的内容。 XML显示:
<img src="/templates_soft/images/facebook.png" alt="twitter" />
当我查看页面时,图像不显示,因为它与原始页面不在同一路径。
我需要添加其余的URL才能显示图像。 http://www.mypage.com/
之类的东西,以便从http://www.mypage.com/templates_soft/images/facebook.png
有没有办法做到这一点?
用途:
<img src="{$imageBase/}templates_soft/images/facebook.png" alt="twitter" />
其中名为$imageBase
的xsl:variable被定义为包含必要的前缀(在您的情况下为"http://www.mypage.com"
)。
这里是完整的XSLT解决方案:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:param name="pimageBase" select="'http://www.mypage.com'"/>
<xsl:template match="img">
<img src="{concat($pimageBase, @src)}" alt="{@alt}"/>
</xsl:template>
</xsl:stylesheet>
当此转换应用于以下XML文档时:
<img src="/templates_soft/images/facebook.png" alt="twitter" />
产生想要的正确结果:
<img src="http://www.mypage.com/templates_soft/images/facebook.png" alt="twitter"/>
如果使用XSLT,则只需创建一个XML,其中包含所需的整个URL,然后标记XSLT,以便它包含指向XML文件中原始字段的“指针”。如果要绑定到诸如Grid的控件,则可以进行行绑定并在该点添加信息,如果这样做比XSLT容易的话。