xsl用另一个替换空元素

时间:2014-04-14 14:49:01

标签: xslt xslt-1.0

我有一个xml样式表,它接受多个xml文档并转换并组合它们。但是,所有xml文档都包含相同的细节,节点名称不同。在给我带来问题的那个,我有一个:

<description>
some text...
<NewLine/>
some text...
<NewLine/>
some text...
</description>

如何将其更改为:

<details>
<p>some text...</p>
<p>some text...</p>
<p>some text...</p>
</details>

1 个答案:

答案 0 :(得分:2)

使用此XSLT,您将获得所需的结果,对于您提供的源XML:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="description">
        <details>
            <xsl:apply-templates />
        </details>
    </xsl:template>

    <xsl:template match="description/text()">
         <p><xsl:value-of select="normalize-space(.)"/></p>
    </xsl:template>
</xsl:stylesheet>

如果你的来源实际上更复杂,那么你将不得不调整样式表来处理它。我假设<NewLine/>实际上是一个标记(而不是换行符的表示,并且它总是空的)。