以除去空间元素值我有两种类型的XML元素,一种类型是需要使用XSL
首先XML:
<Body>
<h1>aaa</h1>
<h1>bbb</h1>
<h1>ccc</h1>
</Body>
第二XML:
<Body>
<h1> </h1>
<h1>aaa</h1>
<h1>bbb</h1>
</Body>
XSL I” m使用为
<xsl:strip-space elements="h1"/>
<xsl:template match="@*|node()">
<xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
</xsl:template>
<xsl:template match="Body">
<xsl:copy>
<h1><xsl:value-of select="h1"/></h1>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="h1"/>
输出我是GE正确地拟合为第一XML作为像:
<Body>
<h1>aaa bbb ccc</h1>
</Body>
但是,即使我用带空间元素作为H1用于第二XML,我发现了象下面这样:
<Body>
<h1> aaa bbb</h1>
</Body>
预期输出像
<Body>
<h1>aaa bbb</h1>
</Body>
需要删除h1的空格元素。但由于该标签,它甚至结合空间。我使用了优先级,并在模板中使用了单独的h1 [normalize-space()]标签。但它不工作。有任何方法可以避免这种情况。请建议。我使用的是XSLT 2.0和saxon-PE 9.6.0.7。在此先感谢
谢谢@Michael。它为这个标签工作很好。我用这个标签
– User501