我有一个带有子元素的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>