1
自從我使用XSLT做了任何事情已有近20年了。試圖將文檔轉換爲下面的文本。如何使用XSLT將此HTML轉換爲所需的文本
<p>
おばあさんは、とても
<ruby><rb>喜</rb><rp>(</rp><rt>よろこ</rt><rp>)</rp></ruby>びました。<br/>
「おじいさん、
<ruby><rb>今</rb><rp>(</rp><rt>こん</rt><rp>)</rp></ruby>
<ruby><rb>晩</rb><rp>(</rp><rt>ばん</rt><rp>)</rp></ruby>、このたぬきで、たぬき
</p>
所需的輸出
おばあさんは、とても<ruby=よろこ>喜</ruby>びました。<br/>
「おじいさん、
<ruby=こん>今</ruby><ruby=ばん>晩</ruby>、このたぬきで、たぬき
我有我的文字需要轉換爲這個專有標記的多頁。
這是我開始的,但它遠沒有工作,因爲我在處理ruby標籤之外的文本。這一直是XSLT的難題嗎?
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="yes"/>
<xsl:template match="/p">
<xsl:text disable-output-escaping="yes"><p></xsl:text>
<xsl:value-of select="."/>
<xsl:apply-templates select="ruby"/>
<xsl:text disable-output-escaping="yes"></p></xsl:text>
</xsl:template>
<xsl:template match="ruby">
<xsl:apply-templates select="rb"/>
<xsl:apply-templates select="rt"/>
</xsl:template>
<xsl:template match="rb">
<xsl:value-of select="."/>
<xsl:text></ruby></xsl:text>
</xsl:template>
<xsl:template match="rt">
<xsl:text><ruby=</xsl:text>
<xsl:value-of select="."/>
<xsl:text>></xsl:text>
</xsl:template>
</xsl:stylesheet>
UPDATE 啊我看到這個故事的一部分使用需要priority
<xsl:template match="/p" priority="0">
<xsl:text disable-output-escaping="yes"><p></xsl:text>
<xsl:apply-templates/>
<xsl:apply-templates select="ruby"/>
<xsl:text disable-output-escaping="yes"></p></xsl:text>
</xsl:template>
優先級,以確保它不會應用於未來的模板匹配的「紅寶石」和「RT 「 例如。
祝賀,但我不知道爲什麼你認爲你需要的優先級。其他模板將不會應用於此模板,因爲其他模板不匹配此匹配的模板。還有一點就是隻複製元素內容的模板,就像缺少模板一樣。 – kumesana
也許我需要它在我的進步中的早期階段。你是對的,現在看來沒有必要,我更好地組織了事情! –