[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: how to match node set with attribute then pass to

Subject: Re: how to match node set with attribute then pass to a template
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 26 Sep 2003 13:13:07 -0400
stylesheet match node
At 2003-09-26 12:24 -0400, Biying Huang wrote:
In PDF output, I am trying to display 2 images side by side and its info
above each image, but only display images that has the attribute
showImage="true".

This is an ideal situation for the cell-based row-grouping strategy in XSL-FO ... most of my students have never heard of this and only think of the row-based row-grouping strategy because of their background in HTML. I see from your attempt that you, too, were trying to work out an answer using the row-based row-grouping strategy.


When dealing algorithmically with column counts in XSL-FO, using the cell-based row-grouping strategy delegates the hard work to the XSL-FO engine, making the stylesheet very easy.

The example below works as expected in both Antenna House and RenderX XSL-FO engines. I increased the size of the data sample to show it working with more cells.

I hope this helps.

...................... Ken


T:\Biying>type biying.xml <AttachmentList> <Attachment showImage="true"> <filename>Image5445.jpg</filename> <info>image information</info> </Attachment>

  <Attachment showImage="false">
        <filename>Image5446.jpg</filename>
        <info>image information</info>
  </Attachment>

  <Attachment showImage="true">
        <filename>Image5447.jpg</filename>
        <info>image information</info>
  </Attachment>
  <Attachment showImage="false">
        <filename>Image5448.jpg</filename>
        <info>image information</info>
  </Attachment>

  <Attachment showImage="true">
        <filename>Image5449.jpg</filename>
        <info>image information</info>
  </Attachment>
  <Attachment showImage="false">
        <filename>Image5450.jpg</filename>
        <info>image information</info>
  </Attachment>

  <Attachment showImage="true">
        <filename>Image5451.jpg</filename>
        <info>image information</info>
  </Attachment>

  <Attachment showImage="true">
        <filename>Image5452.jpg</filename>
        <info>image information</info>
  </Attachment>
  <Attachment showImage="false">
        <filename>Image5453.jpg</filename>
        <info>image information</info>
  </Attachment>

  <Attachment showImage="true">
        <filename>Image5454.jpg</filename>
        <info>image information</info>
  </Attachment>

</AttachmentList>

T:\Biying>type biying.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://www.w3.org/1999/XSL/Format"
                version="1.0">

<xsl:output indent="yes"/>

<xsl:template match="/">
<root font-family="Times" font-size="20pt">

  <layout-master-set>
    <simple-page-master master-name="frame"
                        page-height="210mm" page-width="297mm"
                        margin-top="1cm" margin-bottom="1cm"
                        margin-left="1cm" margin-right="1cm">
      <region-body region-name="frame-body"/>
    </simple-page-master>
  </layout-master-set>

  <page-sequence master-reference="frame">
    <flow flow-name="frame-body">
      <block>Test of table columns</block>
      <table border="solid">
        <table-body>
          <xsl:apply-templates select="/AttachmentList/
                                       Attachment[@showImage='true']"/>
        </table-body>
      </table>
    </flow>
  </page-sequence>
</root>
</xsl:template>

<xsl:template match="Attachment">
  <table-cell border="solid">
    <xsl:if test="count( preceding-sibling::Attachment[@showImage='true'] )
                  mod 2 = 0">
      <xsl:attribute name="starts-row">true</xsl:attribute>
    </xsl:if>
    <block>
      <xsl:value-of select="filename"/>
    </block>
  </table-cell>
</xsl:template>

</xsl:stylesheet>
T:\Biying>saxon -o biying.fo biying.xml biying.xsl

T:\Biying>type biying.fo
<?xml version="1.0" encoding="utf-8"?>
<root xmlns="http://www.w3.org/1999/XSL/Format" font-family="Times" font-size="20pt">
<layout-master-set>
<simple-page-master master-name="frame" page-height="210mm" page-width="297mm" margin-top="1cm" margin-bottom="1cm" margin-left="1cm" margin-right="1cm">
<region-body region-name="frame-body"/>
</simple-page-master>
</layout-master-set>
<page-sequence master-reference="frame">
<flow flow-name="frame-body">
<block>Test of table columns</block>
<table border="solid">
<table-body>
<table-cell border="solid" starts-row="true">
<block>Image5445.jpg</block>
</table-cell>
<table-cell border="solid">
<block>Image5447.jpg</block>
</table-cell>
<table-cell border="solid" starts-row="true">
<block>Image5449.jpg</block>
</table-cell>
<table-cell border="solid">
<block>Image5451.jpg</block>
</table-cell>
<table-cell border="solid" starts-row="true">
<block>Image5452.jpg</block>
</table-cell>
<table-cell border="solid">
<block>Image5454.jpg</block>
</table-cell>
</table-body>
</table>
</flow>
</page-sequence>
</root>



-- Next public US delivery: 3-day XSLT/2-day XSL-FO 2003-10-13 Next public European delivery: 3-day XSLT/2-day XSL-FO 2003-11-?? Instructor-led on-site corporate, government & user group training for XSLT and XSL-FO world-wide: please contact us for the details

G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                       Definitive XSLT and XPath
ISBN 0-13-140374-5                               Definitive XSL-FO
ISBN 1-894049-08-X   Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X               Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners:     http://XMLGuild.info
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/s/bc


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.