在 XSLT 中动态更改页眉
Dynamically change page header in XSLT
XSLT 中页眉的动态变化
我希望相同的图像位于页眉中,但是图像上的内容应根据 XML 节点中的值动态变化
<fo:flow flow-name="header">
<fo:table>
<fo:table-body>
<fo:table-cell border="0pt">
<fo:block>
<fo:external-graphic ID="headerlogo" src="url('imgae_url')" content-width="50%" content-height="50%">
<fo:table-cell border="0pt">
<fo:block margin-top="1.5cm" margin-right="1.2cm" text-align="left" >
<fo:inline font-size="30pt" color="white" >
<xsl:value-of select="path_url"/>
</fo:inline>
</fo:block>
</fo:table-cell>
</fo:external-graphic>
</fo:block>
</fo:table-cell>
</fo:table-body>
</fo:table>
</fo:flow>
正如@potame 在评论中已经提到的,<fo:marker>
和 <fo:retrieve-marker>
是专门为此设计的。由于您没有给出任何 xml
我创建了一个简单示例来展示如何检索标记及其背后的逻辑,那么您应该能够适应您的代码。
<fo:flow flow_name="xsl-region-before">
<fo:table table-layout="fixed" width="100%">
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block>
<!-- Retrieve the marker value -->
<fo:retrieve-marker retrieve-class-name="header_value"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:flow>
然后在你的代码中的某处(可能在 region-body
中你将设置 marker
值(在你的情况下,如果我理解你的问题,它将是一条路径 url)取决于根据您想要的条件。类似 :
<xsl:when test="condition">
<fo:marker marker-class-name="header_value"/>
<xsl:value-of select="path_url"/>
</fo:marker>
</xsl:when>
<xsl:when test="condition2">
<fo:marker marker-class-name="header_value"/>
<xsl:value-of select="path_url2"/>
</fo:marker>
</xsl:when>
XSLT 中页眉的动态变化
我希望相同的图像位于页眉中,但是图像上的内容应根据 XML 节点中的值动态变化
<fo:flow flow-name="header">
<fo:table>
<fo:table-body>
<fo:table-cell border="0pt">
<fo:block>
<fo:external-graphic ID="headerlogo" src="url('imgae_url')" content-width="50%" content-height="50%">
<fo:table-cell border="0pt">
<fo:block margin-top="1.5cm" margin-right="1.2cm" text-align="left" >
<fo:inline font-size="30pt" color="white" >
<xsl:value-of select="path_url"/>
</fo:inline>
</fo:block>
</fo:table-cell>
</fo:external-graphic>
</fo:block>
</fo:table-cell>
</fo:table-body>
</fo:table>
</fo:flow>
正如@potame 在评论中已经提到的,<fo:marker>
和 <fo:retrieve-marker>
是专门为此设计的。由于您没有给出任何 xml
我创建了一个简单示例来展示如何检索标记及其背后的逻辑,那么您应该能够适应您的代码。
<fo:flow flow_name="xsl-region-before">
<fo:table table-layout="fixed" width="100%">
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block>
<!-- Retrieve the marker value -->
<fo:retrieve-marker retrieve-class-name="header_value"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:flow>
然后在你的代码中的某处(可能在 region-body
中你将设置 marker
值(在你的情况下,如果我理解你的问题,它将是一条路径 url)取决于根据您想要的条件。类似 :
<xsl:when test="condition">
<fo:marker marker-class-name="header_value"/>
<xsl:value-of select="path_url"/>
</fo:marker>
</xsl:when>
<xsl:when test="condition2">
<fo:marker marker-class-name="header_value"/>
<xsl:value-of select="path_url2"/>
</fo:marker>
</xsl:when>