2015-08-17 30 views
0

我嘗試使用XSLT轉換將HTML轉換爲有效的HTML,但HTML無效。例如,我想將一些屬性變成內聯CSS。考慮以下幾點:XSLT:將HTML屬性轉換爲內聯CSS

<table border="1" id="t01" width="100%">  
     . 
     . 
     .        
    </table> 

table元素上的borderwidth屬性是過時的。所以我想用內聯CSS代替,如下所示:

<table style="border:1;width:100%;" id="t01"> 
     . 
     . 
     .        
    </table> 

我該如何使用XSLT做到這一點?

+1

注:border屬性是太陳舊,也沒有所謂的規則或CELLPADDING(CSS屬性儘管有邊界和邊界崩潰)。 – pawel

+0

你試過了什麼代碼? –

+0

上帝,當StackOverflow讓我改寫評論以通過它的審查規則時,我討厭它。這些人認爲他們是誰,認爲評論「你試過了什麼?」不能接受的。我想我已經有權利說出我喜歡的內容。 –

回答

1

你當然可以使這個更漂亮,更通用的,等等,但我第一遍會是這樣的:

<xsl:template match="table"> 
    <table> 
    <xsl:attribute name="style"> 
     <xsl:if test="@border"> 
     <xsl:value-of select="concat('border:', @border, '; ')"/> 
     </xsl:if> 
     <xsl:if test="@width"> 
     <xsl:value-of select="concat('width:', @width, '; ')"/> 
     </xsl:if> 
    </xsl:attribute> 
    <xsl:copy-of select="@id"/> 

    <!-- either this or apply-templates --> 
    <xsl:copy-of select="*"/> 

    </table> 
</xsl:template>