Динамически устанавливайте URL-адрес изображения в файл xsl

#variables #xsl-fo

#переменные #xsl-fo

Вопрос:

Я хочу создать файл xsl (для преобразования xslt в xsl: fo с использованием xml) Как я могу отобразить изображение, URL-адрес которого хранится в файле xml? Я могу использовать переменные

 <fo:block-container top="5mm" height="20mm" left="0mm" width="75mm">
      <fo:block margin-top="10mm" margin-left="50mm">
        <fo:external-graphic display-align="center" src="url('{$imageUrl}')" content-width="75mm"></fo:external-graphic>
      </fo:block>
    </fo:block-container>
  

Но как я могу установить значение переменной из тега из xml-файла?

Пример XML из комментария:

 <?xml version="1.0" encoding="UTF-8" ?>
<doc> 
  <title>Simple test</title>
  <image>
    <i>colour_logo.jpg</i>
  </image>
  <body>
    <question>
      <p>Is the sky blue?</p>
    </question>
    <question> 
      <p>Is the grass blue?</p> 
    </question> 
  </body> 
</doc>
  

Комментарии:

1. Был бы полезен пример XML. Вы можете получить URL-адрес / путь к изображению из XML, используя XPATH в вашем XSLT, но без некоторого примера XML трудно предоставить вам XPath

2. <?xml version=»1.0″ encoding=»UTF-8″ ?> — <doc> <title>Простой тест</title> — <изображение> <i>colour_logo.jpg </i> </image> — <body> — <question> <p>Небо голубое? </p> </question> — <вопрос> <p> Трава синяя? </p> </question> </body> </doc>

Ответ №1:

Вы можете заменить {$imageUrl} на {/doc/image/i} .

   <fo:block-container top="5mm" height="20mm" left="0mm" width="75mm">
    <fo:block margin-top="10mm" margin-left="50mm">
      <fo:external-graphic display-align="center" src="url('{/doc/image/i}')" content-width="75mm"></fo:external-graphic>
    </fo:block>
  </fo:block-container>