在java中对html进行Xsl转换

时间:2012-05-09 18:13:43

标签: java html xslt saxon

我想使用xsl:

提取部分html
<td>    
    <div>    
        <table>    
        <tbody>      
            <tr><td></td><td></td></tr>     
        </tbody>
        <tfoot>   
            <tr>   
                <td></td>    
                <td class="comment-form"><form id="add-comment-586631"></form></td>    
            </tr>    
        </tfoot>   
        </table>   
    </div>   
    <a id="comments-link-586631" class="comments-link" data-comments-count="0" title="ask author for clarification about this post">add comment</a>   
</td>

我想制作这个(div中的任何内容):

<table>    
            <tbody>      
                <tr><td></td><td></td></tr>     
            </tbody>
            <tfoot>   
                <tr>   
                    <td></td>    
                    <td class="comment-form"><form id="add-comment-586631"></form></td>    
                </tr>    
            </tfoot>   
            </table>

我已尝试使用此示例进行多种排列,但无法正常工作:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:x="http://india.com/states">
    <xsl:strip-space elements="*" />
    <xsl:output indent="yes" method="html" />
    <xsl:template match="//div/node()">
            <xsl:copy-of select="*" />
            <xsl:apply-templates />
    </xsl:template>
</xsl:stylesheet>

有人可以指出我在这里缺少的东西。感谢

1 个答案:

答案 0 :(得分:2)

如果您只想复制 div 元素的后代(无需进一步处理),则以下内容应该有效:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:strip-space elements="*" />
   <xsl:output indent="yes" method="html" />

   <xsl:template match="div/node()">
      <xsl:copy-of select="." />
   </xsl:template>

   <xsl:template match="text()"/>
</xsl:stylesheet>