从节点中选择所有文本

时间:2015-08-10 16:38:52

标签: xslt select text

我有以下xml,我需要提取节点外的文本"对齐"。

<html><head><title>test</title></head><body><p><justificado><negrita>TEST.- </negrita>Hello people <negrita>it is</negrita><negrita>,</negrita> fa test ./justificado></p></body></html>

我试过以下

但没有成功
<xsl:template match="not (*/negrita[preceding-sibling::*[1]self::negrita]])">test-123</xsl:template>

1 个答案:

答案 0 :(得分:1)

  

我需要提取节点之外的文本“对齐”。

XSLT样式表的default behavior是复制所有文本节点 - 因此,为了提取特定元素之外的所有文本,您只需要一个与内部的文本节点匹配的空模板指定的元素:

XSLT 1.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>

<xsl:template match="text()[ancestor::justificado]"/>

</xsl:stylesheet>

应用于您的示例输入(在更正结束</justificado>标记之后!),结果为:

test