2017-03-11 18 views
0

のテーブルのために存在しない場合:私は(コンテンツの私の表にlevelledParaの最初のレベルのタイトルを含める必要がが発生-IDを()要素の@Idは、与えられた内容XSLT 1.0

<levelledPara><title>Tools List and Tool Illustrations</title> 
<levelledPara><title>General</title> 
<levelledPara><para>The special tools, fixtures, and equipment needed.</para></levelledPara> 

を単に「ツールリストとツールのイラスト」が表示されます)IDが存在しない場合は最初のlevelledParaの@idを生成したいので、ページ番号にリンクすることができます。 dmcodeはリンクに必要です。私が望んでいたようにうまくいかず、idが生成されていますが、ページ番号が解決されていません。

<xsl:template match="levelledPara" mode="tocdm"> 
    <xsl:if test="title and not(parent::levelledPara)"> 
     <xsl:variable name="id"> 
       <xsl:call-template name="para.id"/> 
     </xsl:variable> 
     <xsl:attribute name="id"> 
      <xsl:value-of select="$id"/> 
     </xsl:attribute> 
    <xsl:variable name="dmcode"><xsl:apply-templates select="ancestor::dmodule/identAndStatusSection/dmAddress/dmIdent/dmCode"/></xsl:variable> 
    <xsl:variable name="lpcode"><xsl:value-of select="$dmcode" /><xsl:value-of select="$id"/></xsl:variable> 
    <fo:table-row> 
     <fo:table-cell xsl:use-attribute-sets="table.cell.padding1" number-columns-spanned="2"> 
      <fo:block text-align-last="justify" text-indent="21mm"> 
          <xsl:number count="levelledPara" from="content" level="multiple" format="1.1.1.1.1"/> 
          <xsl:text>&#160;&#160; </xsl:text> 
       <xsl:value-of select="title" /><fo:leader leader-pattern="dots"/><fo:basic-link><xsl:attribute name="internal-destination"><xsl:value-of select="$lpcode" /></xsl:attribute><fo:page-number-citation ref-id="{$lpcode}"/></fo:basic-link> 

      </fo:block> 
     </fo:table-cell> 
    </fo:table-row> 
    </xsl:if> 
</xsl:template> 

<xsl:template name="para.id"> 
     <xsl:param name="object" select="."/> 
    <xsl:choose> 
    <xsl:when test="$object/@id"> 
     <xsl:value-of select="$object/@id"/> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:value-of select="generate-id($object)"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 

答えて

0
test="not[@id]" 

テストid属性を持つ要素<not>がある場合。あなたが望む

test="not(@id)" 
+0

ありがとう、私は変更を加えましたが、IDはまだリンクで生成されていません。 – Caroline

関連する問題