我想将一些XHTML片段转换为特定的XML格式以供后续处理。我想用XSLT实现这一点。
我在这里看到了关于展平嵌套XML结构的一些问题和答案,但没有明显包含多个元素正文文本节点,所以......
示例输入XHTML如下(此示例是最简单的情况,理论上我可以使用不同类属性的任何级别的跨度嵌套):
<div>
<span class="one">
Leading One Text
<span class="two">Two Text</span>
Trailing One Text
</span>
</div>
我正在尝试生成此输出XML:
<document>
<text class="one">Leading One Text </text>
<text class="two">Two Text</text>
<text class="one"> Trailing One Text</text>
</document>
这可以通过XSLT实现,如果是,怎么做?
答案 0 :(得分:1)
<xsl:template match="div">
<document>
<xsl:apply-templates select=".//text()[normalize-space() != '']" />
</document>
</xsl:template>
<xsl:template match="div//text()">
<text class="{../@class}">
<xsl:value-of select="normalize-space()" />
</text>
</xsl:template>