XSLT附加URL,相对于绝对值

问题描述 投票:2回答:2

在我的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

显示图像

有没有办法做到这一点?

url xslt absolute-path relative-url
2个回答
2
投票

用途

<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"/>

0
投票

如果使用XSLT,则只需创建一个XML,其中包含所需的整个URL,然后标记XSLT,以便它包含指向XML文件中原始字段的“指针”。如果要绑定到诸如Grid的控件,则可以进行行绑定并在该点添加信息,如果这样做比XSLT容易的话。

© www.soinside.com 2019 - 2024. All rights reserved.