使用XSLT测试关闭TD标记

时间:2014-01-17 16:29:12

标签: xml xslt

我有一个XML文档,其中一些节点包含HTML表。我需要将该数据输出为纯文本,并且我正在尝试检测关闭的TD标记,以便我可以用标签替换它们。

现在我尝试使用:

<xsl:when test="contains($text, '&lt;/td&gt;')">
<xsl:text>&#x9;</xsl:text>
</xsl:when>
然而,这不起作用。有没有人能快速完成我需要的代码示例?

1 个答案:

答案 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>&#9;</xsl:text>
</xsl:template>