2013-08-03 9 views
5

にHTMLでXSLTとのリンクを作成するI次のXMLコードがあります:私はすでに3異なるHTML(A用、B用と1を得る私のXSLで他のHTML

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> 
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" 
     schematypens="http://purl.oclc.org/dsdl/schematron"?> 
<TEI xmlns="http://www.tei-c.org/ns/1.0"> 
    <teiHeader/> 
    <text> 
     <head n="3">Capitulo primeyro</head> 
     <pb facs="folio16r.jpg"/> 
     <div> 
      <p>... figurado <app> 
       <lem>pollo</lem> 
       <rdg wit="#A">pollo</rdg> 
       <rdg wit="#B">pello</rdg> 
      </app> Parayso ...</p> 
      <p> ... <app> 
       <lem>sacarõ</lem> 
       <rdg wit="#A">sacarõ</rdg> 
       <rdg wit="#B">ssaee</rdg> 
       </app> ...</p> 
     </div> 
     <pb facs="folio16v.jpg"/> 
     <div> 
      <p> .... os fisicos <app> 
       <lem>dessesperarom</lem> 
       <rdg wit="#A">desseperarom</rdg> 
       <rdg wit="#B">desesperõ</rdg> 
       </app> ... que assy <app> 
       <lem>saa</lem> 
       <rdg wit="#A">sooa</rdg> 
       <rdg wit="#B">saa</rdg> 
       </app> ...</p> 
     </div> 
    </body> 
</text> 

を補題を使って)。私はアプリのためにXSLでテンプレートを作成しました:

<xsl:template match="app"> 
    <xsl:variable name="appNumber" select="count(preceding::app) + 1"/> 
    <a href="#app_{$appNumber}"><xsl:apply-templates select="lem"/></a> 
</xsl:template> 

<xsl:template match="app" mode="footnote"> 
    <xsl:variable name="appNumber" select="count(preceding::app) + 1"/> 
    <li id="app_{$appNumber}"> 
     <xsl:for-each select="rdg"> 
      <i><xsl:apply-templates/></i><xsl:text> </xsl:text> 
      <a> 
       <xsl:attribute name="href"> 
        <xsl:text>#</xsl:text> 
        <xsl:apply-templates select="app"/> 
       </xsl:attribute> 
       <xsl:value-of select="substring-after(@wit, '#')"> 
       </xsl:value-of> 
      </a> 
      <xsl:text> </xsl:text> 
      <br/> 
      <xsl:if test="position() lt last()"></xsl:if> 
     </xsl:for-each> 
    </li> 
</xsl:template> 

今、私はこのHTML持っている:あなたは、Liのリンクを作成するための開始を参照してくださいが、私は私が欲しいものを得ることはありませんとして

<ul> 
    <li id="app_1"><i>prophetas</i> <a href="#">Editor</a> <br /><i>prophetas</i> <a href="#">A</a> <br /></li> 
    <li id="app_2"><i>pollo</i> <a href="#">Editor</a> <br /><i>pollo</i> <a href="#">A</a> <br /></li> 
    <li id="app_3"><i>sacarõ</i> <a href="#">Editor</a> <br /><i>sacarõ</i> <a href="#">A</a> <br /></li> 
    <li id="app_4"><i>dessesperarom</i> <a href="#">Editor</a> <br /><i>desseperarom</i> <a href="#">A</a> <br /></li> 
    <li id="app_5"><i>saa</i> <a href="#">Editor</a> <br /><i>sooa</i> <a href="#">A</a> <br /></li> 
    <li id="app_6"><i>ante</i> <a href="#">Editor</a> <br /><i>ante</i> <a href="#">A</a> <br /></li> 
</ul> 

を。私はリンクがウィット(#Aまたは#Bまたは#Editor)から他のhtmlのテキストの同じポイントになると言いたいと思います。例えば、私がアプリでA HTMLを見ているなら、Bをクリックすると、B htmlの同じテキストポイントに行きたいと思う。誰も助けることができますか?

+0

あなたの説明は非常に混乱しています。取得したいHTMLを書き留めてみてはいかがですか? – Tomalak

+0

また、大規模なXMLサンプルを持っていないのは常に良いですが、あなたの現在の出力があなたの現在の入力に対応していないので、ここで十分に表示されていないと思います。あなたの入力XMLは、あなたが私たちに示したものとは異なるテキストで6つの** app **要素を持つ必要があります。あなたが現在あなたの現在の出力を得るために使用しているXMLを表示することができれば、それはあまりにも役に立ちます。ありがとう! –

+0

親愛なるティムC、私はそれをすべて示しました。ありがとう – user2648292

答えて

0

これが正しいとすれば、これはリンクの正しい構成についてのものです。 1つの装置ファイルがあり、各装置エントリの異なるソースファイルにリンクする必要があります。実際、あなたはかなり近くにいました。これを試してみてください:

<xsl:attribute name="href"> 
    <xsl:value-of select="substring-after(@wit, '#')"/> 
    <xsl:text>.html#app_</xsl:text> 
    <xsl:value-of select="$appNumber"/> 
    <xsl:apply-templates select="app"/> 
</xsl:attribute> 

これは次のようにリンクを生成します:

<a href="A.html#app_2">A</a> 

私はすでに、すべての時間の後に自分自身でそれを考え出したと仮定します。それにもかかわらず、私はこれに答えたいと思っていました。

関連する問題