[xsl] HTML and XSLT

Subject: [xsl] HTML and XSLT
From: "ivanmacculi\@libero\.it" <ivanmacculi@xxxxxxxxx>
Date: Sat, 25 Jun 2011 21:47:42 +0200
Hi,
i have one table in HTML format and my purpose is to trasform it into another
changing the layout of its values. The table is formed by two columns: the
first one contains some values that specify the content of the second one:

  <tr>
    <td class="label">Author:</td>
    <td>Advogarius, Petrus Bonus</td>
  </tr>
  <tr>
   <td class="label">Title:</td>
   <td>Judicium anni 1477 [Italian]. Tr: Antonio Cornazzano</td>
  </tr>

There are a lot of Authors and Titles in the table, so the values "Author" and
"Title" are repeated a lot of time.
i would like to re-organize the table having one column for each kind of
value, specifying its content in the head:


  <tr>
   <td><b>Author</b></td>
   <td><b>Title</b></td>
  </tr>
  <tr>
   <td>Advogarius, Petrus Bonus</td>
   <td>Judicium anni 1477 [Italian]. Tr: Antonio Cornazzano</td>
  </tr>

..but i've encountered a lot of problem doing  it. So could you help me
please? this is the complete HTML:

--------------- HTML --------------

<?xml version="1.0" encoding="UTF-8"?>
 <head>
        <title>British Library - Incunabula Short Title Catalogue</title>
 </head>
 <body rightmargin="0" class="backgroundwhite">
		<h1 class="greyscale">ISTC Records</h1>
		<table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Judicium anni 1477
[Italian]. Tr: Antonio Cornazzano</td></tr><tr><td
class="label">Imprint:</td><td>[Ferrara: Severinus Ferrariensis, after 27 Feb.
1477] <br/></td></tr><tr><td class="label">Format:</td><td>80</td></tr><tr><td
class="label">ISTC No.:</td><td>ia00057080</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">IGI 1133; GW 232 (&amp; Accurti(1930)
p.103)</div></td></tr><tr><td class="label">Reproductions:</td><td>Microfiche:
Primary Source Microfilm (an imprint of Cengage Learning), 2000. Incunabula:
the Printing Revolution in Europe 1455-1500. Unit 41 - Science Part I, SCI
6<br/></td></tr><tr><td class="label">Locations:</td><td/></tr><tr><td
align="right" class="subheader">Italy:</td><td>Bologna U</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1492 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Florence: Lorenzo Morgiani and Johannes Petri,
after 21 Sept. 1491] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057086</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Klebs 138.6; IBE 36; GW 237</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Spain/Portugal:</td><td>Sevilla Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1493 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Bologna: Ugo Rugerius, after 22 Jan. 1493]
<br/></td></tr><tr><td class="label">Format:</td><td>40</td></tr><tr><td
class="label">ISTC No.:</td><td>ia00057088</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Klebs 138.7; IBE 38; GW 240</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Spain/Portugal:</td><td>Sevilla Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1494 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>Venice: [Johannes Tacuinus, de Tridino?], for
Antonio Lauro Palazzo, [after 1 Jan. 1494] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057097</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Klebs 158.12; IBE 40; GW 243</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Spain/Portugal:</td><td>Sevilla Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1495 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Venice: Christophorus de Pensis, de Mandello,
1494-95] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057300</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">IGI 1134; IBE 41; GW 245 (&amp; Accurti(1930)
p.104)</div></td></tr><tr><td class="label">Locations:</td><td/></tr><tr><td
align="right" class="subheader">Italy:</td><td>Bologna U</td></tr><tr><td
align="right" class="subheader">Spain/Portugal:</td><td>Sevilla
Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1496 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>Bologna: Justinianus de Ruberia, [1495-96]
<br/></td></tr><tr><td class="label">Format:</td><td>40</td></tr><tr><td
class="label">ISTC No.:</td><td>ia00057400</td></tr><tr><td
class="label">References:</td><td><div style="display: block" id="abbrRefs">R
1430; IGI 1135; IBE 42; GW 247 (+ Accurti(1936) p.50)</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Italy:</td><td>Genova C</td></tr><tr><td align="right"
class="subheader">Spain/Portugal:</td><td>Sevilla Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticatio de
anno 1496 [Italian]</td></tr><tr><td class="label">Imprint:</td><td>[Florence:
Lorenzo Morgiani and Johannes Petri, about 1495-96] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057440</td></tr><tr><td
class="label">References:</td><td><div style="display: block" id="abbrRefs">C
2278; Krist 332; Pr 6360; BMC VI 683; GW 248</div></td></tr><tr><td
class="label">Reproductions:</td><td>Microfiche: Primary Source Microfilm (an
imprint of Cengage Learning), 2001 &amp; 2010. Incunabula: the Printing
Revolution in Europe 1455-1500. Unit 44 - Science Part IV, SCI 309; Unit 89 -
Printing in Florence Part IV, FL 326<br/></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">British Isles:</td><td>London, British Library
(IA.27808)</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticatio de
anno 1497 [Italian]</td></tr><tr><td class="label">Imprint:</td><td>[Florence:
Lorenzo Morgiani and Johannes Petri, about 1496-97] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057460</td></tr><tr><td
class="label">References:</td><td><div style="display: block" id="abbrRefs">C
2280; Krist 333; Pr 6368; BMC VI 685; GW 249</div></td></tr><tr><td
class="label">Reproductions:</td><td>Microfiche: Primary Source Microfilm (an
imprint of Cengage Learning), 2006. Incunabula: the Printing Revolution in
Europe 1455-1500. Unit 72 - Printing in Florence Part II, FL
89<br/></td></tr><tr><td class="label">Locations:</td><td/></tr><tr><td
align="right" class="subheader">British Isles:</td><td>London, British Library
(IA.27832)</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1497 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Milan: Uldericus Scinzenzeler, 1496-97]
<br/></td></tr><tr><td class="label">Format:</td><td>40</td></tr><tr><td
class="label">ISTC No.:</td><td>ia00057500</td></tr><tr><td
class="label">References:</td><td><div style="display: block" id="abbrRefs">R
1663; IGI 1136; GW 250</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Italy:</td><td>Bologna U; Milano Triv</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1498 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Ferrara: Laurentius de Rubeis, de Valentia,
after 1 Mar. 1498] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057600</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">IGI 1137; GW 253 (&amp; Accurti(1930)
p.104)</div></td></tr><tr><td class="label">Locations:</td><td/></tr><tr><td
align="right" class="subheader">Italy:</td><td>Bologna U</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1498/99 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Bologna: Andrea de Bellacorda, after 1 Mar.
1498] <br/></td></tr><tr><td class="label">Format:</td><td>40</td></tr><tr><td
class="label">ISTC No.:</td><td>ia00057620</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Klebs 138.23; IBE 44; GW 254</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Spain/Portugal:</td><td>Sevilla Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1499 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>'Ferrara' [i.e. Bologna: Justinianus de
Ruberia, 1498-99] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057630</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Klebs 138.24; IBE 45; GW 256</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Spain/Portugal:</td><td>Sevilla Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1500 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Ferrara: Laurentius de Rubeis, de Valentia,
after 1 Jan. 1500] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057740</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Klebs 138.27; IBE 47; GW 258</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Spain/Portugal:</td><td>Sevilla Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1501 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Perugia: Damianus de Mediolano, de Gorgonzola,
after 15 Dec. 1500] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057800</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Accurti(1930) 18; GW 0025910N</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Italy:</td><td>Vaticano BAV</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Advogarius,
Petrus Bonus</td></tr><tr><td class="label">Title:</td><td>Prognosticon
astrologicum anni 1501 [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Ferrara: Laurentius de Rubeis, de Valentia,
after 15 Dec. 1500] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00057810</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Klebs 138.28; IBE 48; GW 259</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Spain/Portugal:</td><td>Sevilla Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Aegidius de
Assisio</td></tr><tr><td class="label">Title:</td><td>Aurea verba [Italian]
Add: Aurelius Augustinus: Sermone del vivere religiosamente</td></tr><tr><td
class="label">Imprint:</td><td>[Florence: Lorenzo Morgiani and Johannes Petri,
about 1493] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00063000</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Goff A63; HR 104; Sander 48; Pell 65; CIBN A-32; IGI VI 54-A;
Walsh 3000; GW 266</div></td></tr><tr><td
class="label">Reproductions:</td><td>Microfiche: Primary Source Microfilm (an
imprint of Cengage Learning), 2010. Incunabula: the Printing Revolution in
Europe 1455-1500. Unit 89 - Printing in Florence Part IV, FL
327<br/></td></tr><tr><td class="label">Locations:</td><td/></tr><tr><td
align="right" class="subheader">British Isles:</td><td>Cambridge UL
(acquisition 1962, ULC 2424.5, not in Oates)</td></tr><tr><td align="right"
class="subheader">France:</td><td>Paris BN</td></tr><tr><td align="right"
class="subheader">Germany:</td><td>Hamburg Kunsthalle</td></tr><tr><td
align="right" class="subheader">Italy:</td><td>Firenze N (2); Firenze Ricc;
Genova U; Pisa Arciv; Roma Cors (51.A.52); Rovereto C; Venezia Fond Cini;
Vaticano BAV</td></tr><tr><td align="right"
class="subheader">U.S.A:</td><td>Baltimore MD, Walters Art Gallery; Cambridge
MA, Harvard College Library, Houghton Library; New York NY, Metropolitan
Museum of Art, Department of Prints; New York NY, Pierpont Morgan Library; San
Marino CA, The Huntington Library; Washington DC, Library of Congress, Lessing
J. Rosenwald Collection</td></tr></table>
<br/> <table cellpadding="5"><tr><td class="label">Author:</td><td>Aegidius
Delphus</td></tr><tr><td class="label">Title:</td><td>Psalmi poenitentiales
(ottava rima) [Italian]</td></tr><tr><td
class="label">Imprint:</td><td>[Milan]: Johannes Jacobus Risius, 11 Nov. 1493
<br/></td></tr><tr><td class="label">Format:</td><td>80</td></tr><tr><td
class="label">ISTC No.:</td><td>ia00096490</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">IBE 55; Sander 5935; Santoro 20; GW
0027320N</div></td></tr><tr><td class="label">Locations:</td><td/></tr><tr><td
align="right" class="subheader">Spain/Portugal:</td><td>Sevilla
Colombina</td></tr></table>
<br/> <table cellpadding="5"><tr><td
class="label">Author:</td><td>Aesopus</td></tr><tr><td
class="label">Title:</td><td>Fabulae [Italian] (Tr: Facius
Caffarellus)</td></tr><tr><td class="label">Imprint:</td><td>Cosenza:
Octavianus Salamonius, [about 1478] <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00109500</td></tr><tr><td
class="label">References:</td><td><div style="display: block" id="abbrRefs">HR
346; IGI 83; Accurti(1930) p. 105; GW 346</div></td></tr><tr><td
class="label">Locations:</td><td/></tr><tr><td align="right"
class="subheader">Italy:</td><td>Roma Cors (51.A.19.4)</td></tr></table>
<br/> <table cellpadding="5"><tr><td
class="label">Author:</td><td>Aesopus</td></tr><tr><td
class="label">Title:</td><td>Vita Aesopi [Latin and Italian]</td></tr><tr><td
class="label">Imprint:</td><td>Venice: Manfredus de Bonellis, de Monteferrato,
27 Mar. 1492 <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00110000</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Goff A110; HR 354; IGI VI 115-A; Essling 611; Sander 61;
Voull(B) 4378; Schdfer 5; Mittler-Kind 67; Walsh 2481; Bod-inc A-069; Sheppard
4422; Pr 5360; GW 445</div></td></tr><tr><td
class="label">Reproductions:</td><td>Microfiche: Primary Source Microfilm (an
imprint of Cengage Learning), 2006. Incunabula: the Printing Revolution in
Europe 1455-1500. Unit 76 - Printing in Venice Part I, VE 1<br/>IISTC. Copy:
Roma Cas, Vol. Inc. 1740<br/></td></tr><tr><td class="label">Notes:</td><td>
    After the version of Rinucius; Latin and Italian by Francesco del Tuppo
  <br/></td></tr><tr><td class="label">Locations:</td><td/></tr><tr><td
align="right" class="subheader">British Isles:</td><td>Oxford
Bodley</td></tr><tr><td align="right"
class="subheader">Germany:</td><td>Berlin KupferstichKab; Gvttingen
SUB</td></tr><tr><td align="right" class="subheader">Italy:</td><td>Modena
Est; Perugia C; Reggio Emilia C (imperfect); Roma Cas; Roma Cors (51.E.55);
Siena C; Treviso C; Venezia N; Vaticano BAV</td></tr><tr><td align="right"
class="subheader">Austria:</td><td>Wien, VNB (Ink 4.H.36)</td></tr><tr><td
align="right" class="subheader">U.S.A:</td><td>Cambridge MA, Harvard College
Library, Houghton Library (-); New York NY, J. Onderwyzer; New York NY,
Metropolitan Museum of Art, Department of Prints; San Marino CA, The
Huntington Library</td></tr></table>
<br/> <table cellpadding="5"><tr><td
class="label">Author:</td><td>Aesopus</td></tr><tr><td
class="label">Title:</td><td>Vita Aesopi [Latin and Italian]</td></tr><tr><td
class="label">Imprint:</td><td>Venice: Manfredus de Bonellis, de Monteferrato,
8 Nov. 1493 <br/></td></tr><tr><td
class="label">Format:</td><td>40</td></tr><tr><td class="label">ISTC
No.:</td><td>ia00111000</td></tr><tr><td
class="label">References:</td><td><div style="display: block"
id="abbrRefs">Goff A111; [not H]C 350; R 800; Pell 228; IGI VI 115-B; Essling
612; Sander 64; Bod-inc A-070; Sheppard 4425; Pr 5362; BMC V 504; GW
446</div></td></tr><tr><td class="label">Notes:</td><td>
    After the version of Rinucius; Latin and Italian by Francesco del Tuppo
  <br/></td></tr><tr><td class="label">Locations:</td><td/></tr><tr><td
align="right" class="subheader">British Isles:</td><td>London, British Library
(G.7735 = IA.23809); Oxford Bodley</td></tr><tr><td align="right"
class="subheader">Italy:</td><td>Napoli N; Napoli U; Roma Cas; Torino Reale;
Venezia Fond Cini</td></tr><tr><td align="right"
class="subheader">U.S.A:</td><td>Boston MA, Boston Public Library; New Haven
CT, Yale Univ., Beinecke Library</td></tr></table>

 </body>

---------------- END -------------

...and this one is the first part of my XSLT: I 've some problems to indent
HTML code into XSLT and to leave white cells when the value is blank, that is
necessary to align values referred to the same contest.


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:template match="html">
 <html>
  <hr/>
  <table cellpadding="2" cellspacing="2">
   <tr>
    <td><b>Author</b></td>
    <td><b>Title</b></td>
    <td><b>Imprint</b></td>
    <td><b>Format</b></td>
    <td><b>ISTC No.:</b></td>
    <td><b>References:</b></td>
    <td><b>Reproductions:</b></td>
    <td><b>Locations:</b></td>
   </tr>
    <xsl:apply-templates select="table/tr"/>
  </table>
  </html>
</xsl:template>

<xsl:template match="table/tr">
  <tr bgcolor="#f3f3f3">
   <xsl:if test="td[@class] = 'Author:'">
    <td>
     <xsl:value-of select="td/following-sibling::td"/>
    </td>
   </xsl:if>
   <xsl:if test="td[@class] = 'Title:'">
    <td>
     <xsl:value-of select="td/following-sibling::td"/>
    </td>
   </xsl:if>
  </tr>

	...

</xsl:template>
</xsl:stylesheet>


I've passed one week to do that and the result has discouraged me. thank you
so much.
Ivan

Current Thread