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