0

我想将一些 XHTML 片段转换为特定的 XML 格式以供后续处理。我想用 XSLT 来实现这一点。

我在这里看到了一些关于扁平化嵌套 XML 结构的问题和答案,但没有什么明显的包含多个元素正文文本节点,所以......

示例输入 XHTML 如下(这个示例是最简单的情况,理论上我可以有任何级别的具有不同类属性的 span 的嵌套):

<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 实现吗?如果可以,如何实现?

4

1 回答 1

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>
于 2013-09-04T07:50:42.927 回答