以除去空間元素值我有兩種類型的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