我已經搜索了論壇,但仍然不清楚這一點。我對這個話題很陌生。XSL模板匹配替換元素
我有正在發送到瀏覽器電子郵件客戶端(Outlook)的HTML輸出。 Outlook會覆蓋<p>
標記的特徵並引入較大的間距。
我想建立一個模板匹配,用<div>
或<span>
替換所有<p>
標籤。
由於複雜的原因,在這篇文章中將不會涉及到,我不能停止使用<p>
標籤呈現HTML。
因此,可以說,我有:
<p xmlns="http://www.w3.org/1999/xhtml">
<span>Some text</span>
</p>
我希望可以將輸出爲
<span>Some text</span>
與<p>
標籤去除。
如果我有
<p xmlns="http://www.w3.org/1999/xhtml">
<b>Some other text</b>
</p>
話,我將很高興與之一:
<b>Some other text</b>
或
<span>
<b>Some other text</b>
</span>
正如只要它擺脫了<p>
標籤。
它也需要識別<p>
沒有任何屬性。
我想過像
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="p">
<span>
<xsl:apply-templates select="@*|node()" />
</span>
</xsl:template>
但這不起作用。 <p>
標籤仍然出現。
可以編寫一個適配器,它會在將HTML發送到smtp服務器並對其進行操作之前攔截HTML,但是這種方法存在相當大的困難,我期望避免這種情況。
它甚至有可能做我想做的事情嗎?任何幫助不勝感激。
你也許用標記錯誤'XSL-fo'這個問題? XSL-FO與XSLT不同。 –
生成輸入XML的系統基於xsl-fo ...但您是對的,這與此問題無關。刪除標籤。歡呼聲 – solardb