2015-06-22 46 views
0

我是XSLT新手。我在從div,td或li標籤中刪除樣式屬性時被卡住了。XSLT如何從div和td標籤中刪除樣式

輸入XML:

<?xml version="1.0" encoding="UTF-8"?> 
    <div xmlns="http://www.w3.org/1999/xhtml"> 
       <table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; WIDTH: 606px; BORDER-COLLAPSE: collapse; WORD-WRAP: break-word; TABLE-LAYOUT: fixed; BORDER-TOP: medium none; BORDER-RIGHT: medium none" 
         class="MsoNormalTable msoUcTable"     tabIndex="-1" border="1" cellPadding="0" width="606"> 
        <colgroup> 
         <col style="WIDTH: 189px"/> 
         <col style="WIDTH: 417px"/> 
        </colgroup> 
        <tbody> 
         <tr> 
         <td bgColor="#cccccc" 
          style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid"> 
          <div style="MARGIN-TOP: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; FONT-SIZE: 12pt"> 
           <span style="FONT-SIZE: 10pt"> 
            <strong> 
            <font face="Arial"> 1st data</font> 
            </strong> 
           </span> 
           <span style="FONT-SIZE: 1pt"/> 
          </div> 
         </td> 
         <td bgColor="#cccccc" 
          style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid"> 
          <div style="MARGIN-TOP: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; FONT-SIZE: 12pt"> 
           <span style="FONT-SIZE: 10pt"> 
            <strong> 
            <font face="Arial">2nd data</font> 
            </strong> 
           </span> 
           <span style="FONT-SIZE: 1pt"/> 
          </div> 
         </td> 
         </tr> 
        </tbody> 
        <tbody> 
         <tr> 
         <td style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid"> 
          <div style="MARGIN-TOP: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; FONT-SIZE: 12pt"> 
           <span style="FONT-SIZE: 10pt"> 
            <strong> 
            <font face="Arial">3rd data</font> 
            </strong> 
           </span> 
           <span style="FONT-SIZE: 1pt"/> 
          </div> 
         </td> 
         <td style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid"> 
          <div style="MARGIN-TOP: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; MARGIN-BOTTOM: 0pt; FONT-SIZE: 12pt"> 
           <span style="FONT-SIZE: 10pt"> 
            <font face="Arial">4th data.</font> 
           </span> 
          </div> 
         </td> 
         </tr> 
        </tbody> 
       </table> 
      </div> 

和輸出應該是:

的Output.xml

<div xmlns="http://www.w3.org/1999/xhtml"> 
    <span> 
     <table tabIndex="-1" class="MsoNormalTable msoUcTable" style="BORDER-TOP-STYLE: none; WORD-WRAP: break-word; WIDTH: 453.75pt; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: fixed; BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" borderColor="#000000" cellPadding="0" width="606" border="1"> 
      <colgroup> 
       <col style="WIDTH: 163px"/> 
       <col style="WIDTH: 442px"/> 
      </colgroup> 
      <tbody> 
       <tr> 
        <td> 
         <font size="2" face="Arial"> 
          <div> 
           <font size="2" face="Arial"> 
            <strong>1st data </strong> 
           </font> 
          </div> 
         </font> 
        </td> 
        <td> 
         <font size="2" face="Arial"> 
          <div> 
           <font size="2" face="Arial"> 
            <strong>2nd data </strong> 
           </font> 
          </div> 
         </font> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <font size="2" face="Arial"> 
          <div> 
           <font size="2" face="Arial"> 
            <strong>3rd data</strong> 
           </font> 
          </div> 
         </font> 
        </td> 
        <td> 
         <font size="2" face="Arial"> 
          <div> 
           <font size="2" face="Arial">4th data </font> 
          </div> 
         </font> 
        </td> 
       </tr> 
      </tbody> 
     </table> 
    </span> 
</div> 

我使用XSL,現在需要從DIV刪除樣式屬性,李,範圍和其他標籤:<xsl:template match=" div | li | span | th | col | td "> <xsl:element name="{local-name()}" namespace="http://www.w3.org/1999/xhtml"> <xsl:copy-of select="@*" /> <xsl:apply-templates select="@*|node()"/> </xsl:element> </xsl:template>

在此先感謝。 塔姆

+0

TD和div標籤是這樣的:

1st data

+1

「*我需要XSL進行這種轉換。」這不是問題。 –

+0

嗨邁克爾..我想使用但沒有得到所需的結果: \t \t \t \t \t的 \t \t \t的 \t \t \t

回答

1

要刪除一些節點開始與恆等變換模板

<xsl:template match="@* | node()"> 
    <xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
</xsl:template> 

然後添加一個空模板要去除的節點:

<xsl:template xmlns:xhtml="http://www.w3.org/1999/xhtml" 
    match="xhtml:div/@style | 
      xhtml:li/@style | 
      xhtml:td/@style | 
      xhtml:span/@style"/> 
+0

非常感謝Martin ...它的工作... –

相關問題