我有一个XML文档,其中一些节点包含HTML表。我需要将该数据输出为纯文本,并且我正在尝试检测关闭的TD标记,以便我可以用标签替换它们。
现在我尝试使用:
<xsl:when test="contains($text, '</td>')">
<xsl:text>	</xsl:text>
</xsl:when>
然而,这不起作用。有没有人能快速完成我需要的代码示例?
答案 0 :(得分:1)
抱歉,XSLT无法检测或替换打开/关闭标记。 XSLT在节点树上工作,节点树是通过解析标记标记生成的。因此,您需要根据输入的td 元素,文本节点等来定义问题,而不是根据标记。
(如果您确实需要对XML文档的标记进行操作,那么您需要使用非XML工具。)
例如,您可能决定要将每个<td>
元素替换为其文本内容,后跟选项卡。在这种情况下,你可以有一个像
<!-- match any td element -->
<xsl:template match="td">
<!-- output the contents, recursively transforming them if necessary -->
<xsl:apply-templates />
<!-- output a tab character -->
<xsl:text>	</xsl:text>
</xsl:template>