0

我想使用 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>

有人可以指出我在这里缺少什么。谢谢

4

1 回答 1

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>
于 2012-05-09T18:30:07.827 回答