Passing params between XSLT files

时间:2018-02-05 13:00:23

标签: xml xslt apache-fop

I'm trying to create some kind of XSLT config file which looks like this:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo">
    <xsl:variable name="font_size" value="5pt"/>
</xsl:stylesheet>

Thing I want to achive is to call the variable "font_size" in other XSLT file to define.

I was trying to do this like this:

<?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo">
    <xsl:include href="config.xsl"/>
      <fo:block font-size="$font-size">
          ...

But unfortunately it didn't work out.

1 个答案:

答案 0 :(得分:0)

首先,xsl:variable没有“value”属性。我认为你的意思是“选择”。

其次,如果变量名为“font_size”,则不能将其引用为“$ font-size”(注意标点符号)

第三,你需要将变量引用放在花括号中:`font-size =“{$ font_size}”/&gt;。

第四,如果你试图生成一个fo:block元素,那么它需要出现在模板或函数中。允许使用fo:block元素作为xsl:stylesheet的直接子元素,但什么都不做。