2017-09-15 3 views
0

J'ai plusieurs fichiers html commençant par un titre et le nom de l'auteur, mais je ne les veux pas dans la table des matières. J'ai utilisé remove toc from toc in wkhtmltopdf pour coder en dur la valeur de la h1/h2 à supprimer mais j'aimerais que le fichier xlst toc soit indépendant du nom du document et de l'auteur. J'ai donc donné à ces titres spécifiques un attribut de classe. Le problème réside dans le filtre xlst, je n'ai pas trouvé un moyen de tester ou d'extraire l'attribut de classe.Supprimer le titre spécifique du TOC généré à partir de wkhtmltopdf

Voici une partie du fichier html:

<h1 class="title">Me</h1> <h2 class="author">My Title</h2>

Voici la partie du fichier toc xslt:

<xsl:template match="outline:item"> <li> <xsl:if test="(@title!='') and (@title!='My little TOC')and (@class!='author')and (@class!='title')">

Je suis un débutant total à xslt et n » Je ne sais pas quel est le contour: item est vraiment, mais il semble qu'il n'obtient pas l'attribut de classe d'origine. Comment pourrais-je faire le travail?

Répondre

0

si vous exécutez le

--dump-outline toc.xml 

drapeau lors de la génération du pdf et regardez le fichier xml, vous verrez les nœuds et attributs XML.

Vous pouvez ensuite tester le titre, le numéro de page, le lien et le lien arrière du document. Vous pouvez utiliser ces attributs pour votre statut if.

Par exemple:

<xsl:if test="((@page!=1) and (@page!=2) and (@page!=5))"> 
    blah blah blah 
    </xsl:if> 

Notez les crochets autour du test complet.

Vous pouvez même alors imbriquer les si d'autres déclarations en cas de besoin:

<xsl:if test="((@page!=1) and (@page!=2) and (@page!=5))"> 
    <xsl:if test="(@title!='A title')"> 
     more code 
    </xsl:if> 
</xslLif>