XSLT - text()连接单词

时间:2018-05-29 20:14:28

标签: xml xslt concatenation xslt-1.0

我有一个xsl从html页面中选择文本:

<content name="body_content">
  <xsl:apply-templates select="//body//text()"/>
</content>

它工作正常,删除所有HTML标记并仅在正文标记之间选择文本。

问题是当它删除HTML标记并选择连接单词的文本时,例如:

<body>
  <u>Internet Access</u>
  <u>Web</u>
  <u>new cars</u>
</body>

它将产生一个这样的XML字段:

<content name="body_content">Internet Accesswebnew cars</content>

这并不是真的错,因为它只是按照指示选择文本,但由于单词连接,它对我不起作用。

我正在使用XSL 1.0,有没有人知道克服这个问题的任何方式?

提前致谢

(html标签可能没有意义,我只是为这个例子写了这个方式)

1 个答案:

答案 0 :(得分:1)

您可以使用以下模板修改text()个节点:

<xsl:template match="text()[normalize-space(.) != '']">
  <txt><xsl:value-of select="." /><txt />       <!-- Customize this line -->
</xsl:template> 

在此示例中,每个非空text()节点都包含在<txt>元素中。但您可以根据需要自定义它。