1
也許我忽略了一些真正明顯的東西,但此刻我真的很茫然。我試圖通過比較它的屬性@ID
與調用substring-before
的結果來獲得節點。雖然這樣做失敗了,但手動輸入字符串會給出正確的結果,而且我真的很困惑問題在哪裏。 沒有空格干擾,並且substring-before()
的結果正是我想要的結果。XSLT(1.0):比較子字符串後屬性值失敗
我已經在一個文件mets.xml
下面的代碼片段:
<mets:file ID="edoc_ed000227_fg_kuttenberger_religionsfriede" MIMETYPE="text/xml">
<mets:FLocat LOCTYPE="URL" xlink:href="quellentexte/kuttenberger_religionsfriede.xml"/>
</mets:file>
的文件,而我申請的轉型有這個基本輪廓:
<TEI xmlns="http://www.tei-c.org/ns/1.0"
xml:id="edoc_ed000227_fg_kuttenberger_religionsfriede_dt">
[...]
<p xml:id="p001">[...]</p>
</TEI>
我現在應用下面的轉換:
<xsl:template match="tei:p[@xml:id]">
<xsl:variable name="test" select="substring-before(/tei:TEI/@xml:id, '_dt')"/>
<xsl:variable name="target" select="document($metsfile)//mets:file[@ID=substring-before(/tei:TEI/@xml:id, '_dt')]/mets:FLocat/@xlink:href"/>
<xsl:variable name="target2" select="document($metsfile)//mets:file[@ID='edoc_ed000227_fg_kuttenberger_religionsfriede']/mets:FLocat/@xlink:href"/>
[<xsl:value-of select="$test"/>]
[<xsl:value-of select="$target"/>]
[<xsl:value-of select="$target2"/>]
</xsl:template>
而我得到
[edoc_ed000227_fg_kuttenberger_religionsfriede]
[]
[quellentexte/kuttenberger_religionsfriede.xml]
所以,substring-before()
但使用函數調用來檢索,即使使用字面字符串時的節點發現正確的目標值無法正確返回edoc_ed000227_fg_kuttenberger_religionsfriede
。
感謝您的任何幫助或提示!
* headdesk *好傷心,我應該已經看到了我自己...... 我通常不使用的東西變量我只需要一次 - '電流()/祖先::地:TEI/@ XML :id'本來就是沒有變量的方式。謝謝! – dariok