XSLT 将 URL 从相对附加到绝对

发布于 2024-10-12 18:31:21 字数 381 浏览 4 评论 0原文

在我的 XML 文档中,我正在提取包含图像的 的内容。 XML 显示:

<img src="/templates_soft/images/facebook.png" alt="twitter" />

当我查看页面时,图像没有显示,因为它与原始页面不在同一路径。

我需要添加要显示的图像的其余 URL。类似 http://www.mypage.com/ 的内容,以便图像从 http://www.mypage.com/templates_soft/images/facebook.png

显示有办法做到这一点吗?

In my XML document, I am pulling the content of a <TextBlock> that contains images. The XML shows:

<img src="/templates_soft/images/facebook.png" alt="twitter" />

When I view the page, the image doesn't show up because it is not at the same path as the original page.

I need to add the rest of the URL for the images to display. Something like http://www.mypage.com/ so that the image displays from http://www.mypage.com/templates_soft/images/facebook.png

Is there a way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我是有多爱你 2024-10-19 18:31:21

使用

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

Use:

<img src="{$imageBase/}templates_soft/images/facebook.png" alt="twitter" />

where the xsl:variable named $imageBase is defined to contain the necessary prefix (in your case "http://www.mypage.com").

Here is a complete XSLT solution:

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

when this transformation is applied on the following XML document:

<img src="/templates_soft/images/facebook.png" alt="twitter" />

the wanted, correct result is produced:

<img src="http://www.mypage.com/templates_soft/images/facebook.png" alt="twitter"/>
难以启齿的温柔 2024-10-19 18:31:21

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

If you go with XSLT, you simply create an XML that contains the entire URL as you desire, you then tag the XSLT up so it contains the "pointers" to the original fields in the XML file. If you are binding to a control, like a Grid, you can row bind and add the information at that point, if it is easier for you to do than XSLT.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文