Skip to content

SERVICE VISU TOC

lpaugois edited this page Nov 18, 2016 · 11 revisions

#Table des matières ##Contexte

J'ai un document pour lequel je souhaite exploiter la table des matières (ie le service de pagination) à renvoyer la balise suivante : hasToc=true pour faire des liens directement vers la page du document associée à une entrée dans la table des matières.

Un seul paramètre est obligatoire, il s’agit de l’ark de l’identifiant numérique du document. Ce service renvoie la tables des matières

2 cas peuvent alors se présenter. *Soit la numérisation est ancienne : dans ce cas une flux html est renvoyé exemple :http://gallica.bnf.fr/services/Toc?ark=ark:/12148/bpt6k83037p

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">  
<head>    
<link href="../styles/styleTdmImage.css" rel="stylesheet" type="text/css" title="styleTdm" />    
<meta http-equiv="Content-Type" content="text/html" />    <title>0083037.htm</title>    
<script language="JavaScript" src="../javascript/scriptTdmImage.js" > </script>  
</head>  
<body>    
<div class="Titre2" style="text-align: center">      TABLE ALPHAB&Eacute;TIQUE    </div>    
<div class="Titre4" style="text-align: center">      DES MATI&Egrave;RES    </div>    
<div class="Texte" style="font-size: 80%">      ABBEVILLE. Naud&eacute; y meurt, <a href="javascript:allerA('0083037', '140')">108</a>. = <a href="javascript:allerA('0083037', '143')">111</a>.    </div>
    <div class="Texte" style="font-size: 80%">      ACAD&Eacute;MIE fond&eacute;e par Mazarin. Comment devait &ecirc;tre organis&eacute;e, ...

dans ce cas il faut parser le code source du flux et récupérer les informations contenus dans les balises a exemple : 111 Le texte à afficher pour l'entrée est compris entre les balises div et a, dans notre exemple " ABBEVILLE. Naudé y meurt, "

Ici on peut retrouver la page en utilisant la qualifier f de l'api image associé au deuxième paramètre de la fonction javascript "allerA" exemple :http://gallica.bnf.fr/ark:/12148/bpt6k83037p/f143 143 étant le numéro d'ordre et 111 la pagination dans le document original.

        <TEI.2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/TR/xlink" xsi:noNamespaceSchemaLocation="http://bibnum.bnf.fr/ns/tdmNum.xsd">
        <text id="tdm.9754046">
        <body>
        <div0 type="TdM">
        <head>TABLE</head>
        <div1>
        <table>
        <row>
        <cell/>
        <cell>Pages</cell>
        </row>
        <row>
        <cell>
        <seg n="int.000001">AVANT-PROPOS</seg>
        </cell>
        <cell>
        <xref n="lie.000001" type="image" from="FOREIGN(9754046/000011.jp2)">V</xref>
        </cell>
        </row>
        <row>
         <cell>
        <seg n="int.000002">NOTICE SUR J.-J. ROUSSEAU, par M. Rodolphe Rey</seg>
        </cell>
        <cell>
        <xref n="lie.000002" type="image" from="FOREIGN(9754046/000013.jp2)">VII</xref>
        </cell>
        </row>
        <row>
        <cell>
        <seg n="int.000003">
        J.-J. ROUSSEAU PATRIOTE GENEVOIS, par M. Amédée Roget
        </seg>
        </cell>
        <cell>
        <xref n="lie.000003" type="image" from="FOREIGN(9754046/000059.jp2)">LIII</xref>
        </cell>
        </row>
        ...

Chaque entrée est contenue dans une balise row. Pour faire le lien entre le texte de l'entrée de la table des matières, contenu dans la balise seg, et la page du document numérique, il faut exploiter les attributs de la balise xref et notamment l'attribut from, exemple from="FOREIGN(9754046/000059.jp2), dans ce cas ce qui nous intéresse est 000059, qu'il faut parser. Et ainsi on peut créer le lien vers la page: http://gallica.bnf.fr/ark:/12148/bpt6k97540464/f59

Difficulté

Le parsing aussi bien des tables html, que celles au format TEI, peut s'avérer complexe compte tenu des niveaux d'imbrication et des spécificités documentaires

Clone this wiki locally