|
Subject: [xsl] sort, output multiple 'pages' to one page of pdf From: r d <rd32817@xxxxxxxxx> Date: Fri, 10 Nov 2006 18:54:35 -0800 (PST) |
I have a list of letters in xml that need to be output 3 to a page in a pdf.
My stylesheet snippet is xslt 1.0 (that works) and performs this is:
<xsl:for-each select="Letter[position() mod 3 = 1]">
<!-- New Page -->
<fo:page-sequence master-reference="mainPSM">
<fo:flow
flow-name="xsl-region-body" font-size="12pt" font-family="monospace">
<fo:block-container padding-top="2.8cm" height="9.3cm"/>
<xsl:call-template name="formatLetter"/>
<fo:block-container
padding-top=".5cm"/>
<xsl:for-each select="following-sibling::Letter[
position() < 3 ]">
<fo:block-container padding-top="3.1cm"
height="9.3cm"/>
<xsl:call-template name="formatLetter"/>
<fo:block-container padding-top=".5cm"/>
</xsl:for-each>
</fo:flow>
</fo:page-sequence>
</xsl:for-each>
New requirements now request that the
letters be sorted by zip code. If I place an <xsl:sort .../> tag after each
for-each tag, it doesn't sort properly. It appears to sort the elements where
'mod 3 = 1' is true but then the subsequent letters on the page are not sorted
properly. When I tried using a key on the AccountNumber, I quickly found that
each key has a position of 1, so each letter got its own page. When I tried
copying the sorted list to a variable, the 'following-sibling::Letter[
position() < 3 ]' code give me this error:
A node test that matches either
NCName:* or QName was expected.
I am certain that I am overlooking something
here but input would be greatly appreciated. Below is a snapshot of the xml I
am working with:
<Letters>
<Letter>
<Account>
<AccountNumber
checkdigit="3">296</AccountNumber>
<NoticeType>Final</NoticeType>
<Customer>
<FirstName />
<MiddleName />
<SecondName />
<SecondFirstName />
<LastName>LastName1</LastName>
<NameSuffix />
<WorkPhone />
</Customer>
<MailZip>43218-2308</MailZip>
<Balance>737.43</Balance>
<LateCharge>21.48</LateCharge>
</Account>
</Letter>
<Letter>
<Account>
<AccountNumber
checkdigit="9">305</AccountNumber>
<NoticeType>Final</NoticeType>
<Customer>
<FirstName />
<MiddleName />
<SecondName />
<SecondFirstName />
<LastName>LastName3</LastName>
<NameSuffix />
<WorkPhone />
</Customer>
<MailZip>38363-0550</MailZip>
<Balance>124.34</Balance>
<LateCharge>5.00</LateCharge>
</Account>
</Letter>
<Letter>
<Account>
<AccountNumber checkdigit="5">299</AccountNumber>
<NoticeType>Final</NoticeType>
<Customer>
<FirstName />
<MiddleName
/>
<SecondName />
<SecondFirstName />
<LastName>LastName2</LastName>
<NameSuffix />
<WorkPhone />
</Customer>
<MailZip>40233-6230</MailZip>
<Balance>55.00</Balance>
<LateCharge>.30</LateCharge>
</Account>
</Letter>
</Letters>
_____________________________________________________________________________
_______
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Un-nesting elements in XS, Michael Kay | Thread | [xsl] Re: xsl-list Digest 11 Nov 20, Rodrigo Segnini |
| RE: [xsl] Un-nesting elements in XS, Michael Kay | Date | [xsl] Re: xsl-list Digest 11 Nov 20, Rodrigo Segnini |
| Month |