XSLT中页面标题的动态更改
我希望相同的Image在Header中,但是图像上的内容应该根据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>
答案 0 :(得分:4)
正如@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
值(在您的情况下,如果我理解您的问题,它将是路径网址),具体取决于您的需求条件。喜欢:
<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>