URL добавления XSLT от относительного к абсолютному - PullRequest
2 голосов
/ 18 января 2011

В моем 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

Есть ли способ сделать это?

Ответы [ 2 ]

2 голосов
/ 18 января 2011

Используйте :

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

, где xsl: переменная с именем $imageBase определена так, чтобы содержать необходимый префикс (в вашем случае "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 голосов
/ 18 января 2011

Если вы используете XSLT, вы просто создаете XML-файл, который содержит полный URL-адрес по вашему желанию, затем вы добавляете тег XSLT, чтобы он содержал «указатели» на исходные поля в файле XML.Если вы привязываетесь к элементу управления, например, к Grid, вы можете связать строку и добавить информацию в этот момент, если вам легче это сделать, чем XSLT.

...