如何使用XSLT1.0将一个XML节点分解为2



我有一个带有子元素的XML节点,需要将其分解为两个像这样的

<node margin="5pt" color="red">with some text and <seperator/> where the element continues</node>

结果应该是

<node margin="5pt" color="red">with some text and </node>
<node margin="5pt" color="red">where the element continues</node>

下面的XSLT1.0样式表将拆分内容,并使用text()的内容生成单独的node元素,这些元素是seperator元素(拼写错误(的兄弟元素

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="seperator"/>
<xsl:template match="node/text()[preceding-sibling::seperator or following-sibling::seperator]">  
<xsl:element name="{name(..)}">
<xsl:copy-of select="../@*|."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

相关内容

  • 没有找到相关文章

最新更新