2012-10-16 31 views
1

我有大量已被部分標記的OCR文檔。我試圖在目錄中創建工作鏈接。內容表的格式使用預先存在的文檔創建鏈接

<document> 
    <text> 
    <list> 
     <item>Chapter 1<ref>7</ref></item> 
     <item>Chapter 2<ref>27</ref></item> 
     <item>Chapter 3<ref>54</ref></item> 
     <item>Chapter 4<ref>77</ref></item> 
    </list> 
    <body> 
     OCRED text <pb n="7-8" xml:id="VAB0003"/> OCRED text 
    </body> 
</document> 

有沒有一種方法來測試,如果參考值是相同PB @n的價值的一部分,然後如果是這樣拉@xml的值:ID和在ref元素中使用它? 有沒有一個更復雜的方式來完成這個?

+0

試着讓你的標題簡短和描述性! – Deepak

+0

** n **屬性是否總是由兩部分組成,還是可以有多個連字符? –

+0

它代表頁碼。它有時由兩部分組成,格式爲n-n(或nn-nn或nnn-nnn),有時只有一部分沒有短劃線。 – user1748728

回答

0

我認爲你在尋找這樣的事情:

<xsl:template match="ref*"> 
    <xsl:variable name="page" select="."/> 
    <xsl:variable name="target" 
       select="//pb[contains(
         concat(' ',translate(@n,'-',' '),' '), 
         concat(' ',$page,' '))]/@xml:id"/> 
    <xsl:copy> 
    <xsl:if test="$target"> 
     <xsl:attribute name='target'> 
     <xsl:value-of select="$target"/> 
     </xsl:attribute> 
    </xsl:if> 
    <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
</xsl:template> 

這個複雜的級聯是那裏的target的定義,以確保您頁碼的完全令牌匹配;在XSLT 2.0中,它可以做得更加優雅,沒有連接,但不會更簡潔。

+0

看起來像那樣的作品,謝謝 – user1748728

+0

如果您的問題已得到您的滿意回答,您可以點擊[Stack Overflow convention](http://stackoverflow.com/faq#howtoask)旁邊的複選標記輪廓答案。 (Corny聽起來,聲望指向你讓系統給予答案的作者,當你這樣做的時候,結果令人驚訝的是激勵。) –

相關問題