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


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

最佳答案

如果只想复制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>

10-05 20:55
查看更多