我在遇到的XSL
文件中遇到以下代碼片段。 XSL
基本上是將HTML
標籤和國際內容(主要是帶有重音的字符)轉換爲可由QuarkXPress消化的格式。如何縮短這個XSL塊?
我不熟悉XSL在所有和它看起來我們正在檢查對正則表達式的一些內容,轉換它,如果它匹配的代碼判斷,如果不是我們傳遞它一起,看看下一個模板可以匹配它。
的方法看起來OK我外行人看來,但XSL文件已滿重複。
必須有更清晰的寫作方式。你能幫我嗎?
編輯:解釋重複。
在下面的塊,我有兩個街區幾乎相同,大約有50多個,這些塊的文件中。塊之間唯一改變的事情是:模板名稱,正則表達式,匹配子字符串標記的內容以及在非匹配子字符串塊中調用的內容。
<!-- convert HTML <br> tag to ASCII/Quark new line tag -->
<xsl:template name="break-tag">
<xsl:param name="string" select="string(.)"/>
<xsl:analyze-string select="$string" regex="<br>" flags="i">
<xsl:matching-substring>
<xsl:text disable-output-escaping="yes"><\n></xsl:text>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:call-template name="open-list-tag"/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
<!-- convert HTML <li> tag to Bull Text stylesheet with bullet tag and tab tag -->
<xsl:template name="open-list-tag">
<xsl:param name="string" select="string(.)"/>
<xsl:analyze-string select="$string" regex="<li>" flags="i">
<xsl:matching-substring>
<xsl:text disable-output-escaping="yes">@F07/2 Bullet Points:</xsl:text>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:call-template name="euro-char-entity"/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
我沒有看到重複。請指出。 – BalusC 2009-12-09 17:50:57