我需要使用XSLT 1.0將基於div的XHTML佈局轉換爲基於表格的佈局。對於基本的轉換,我有一個樣式表(見下)創建表結構很好。XSL:讀取DIV類屬性以創建HTML表格屬性
我找不出如何解析輸入XHTML上的多個類屬性,以便將特定於表的特性添加到輸出中。 (是的,我想這些新表的屬性,即使類是跨複製)
我的樣品XHTML是:
<div class="table align-center">
<div class="tr">
<div class="td"><p>Table Cell 1</p></div>
<div class="td"><p>Table Cell 2</p></div>
</div>
</div>
一個基本的XSL是建立表結構確定,如下:
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="div[contains(@class, 'table')]">
<table>
<xsl:copy-of select="attribute::node()"/>
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="div[contains(@class, 'tr')]">
<tr>
<xsl:copy-of select="attribute::node()"/>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="div[contains(@class, 'td')]">
<td>
<xsl:copy-of select="attribute::node()"/>
<xsl:apply-templates/>
</td>
</xsl:template>
這個樣式表產生:
<table class="table align-center">
<tr class="tr">
<td class="td"><p>Table Cell 1</p></td>
<td class="td"><p>Table Cell 2</p></td>
</tr>
</table>
我想什麼produc e是這樣的:
<table class="table align-center" align="center">
<tr class="tr">
<td class="td"><p>Table Cell 1</p></td>
<td class="td"><p>Table Cell 2</p></td>
</tr>
</table>
是否可以用XSLT 1.0來做到這一點?我希望解決方案足夠通用,可以添加2個或更多的類並解析它們以添加所需的表屬性。
謝謝!
類屬性值要求標記化,所以我想知道您是否可以使用http://www.exslt.org/str/functions/tokenize/index.html。你的目標是哪個XSLT 1.0處理器? –
嗨馬丁。我使用PHP內置的XSL流程。我相信功能不受支持。 – Kevin