如果你想匹配任何文本值的元素,你可以簡單地做到這一點
<xsl:template match="entry[not(text())]" >
然後,您可以添加您的代碼複製元素,但添加默認價值在同一時間。
結合這與恆等變換,給出了下面的XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="entry[not(text())]">
<entry>
<xsl:copy-of select="@*"/>
<xsl:text>Default Value</xsl:text>
</entry>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
當施加到下面的XML:
<entries>
<entry colsep="0" rowsep="0" />
<entry colsep="0" rowsep="0">Acid suppressant</entry>
</entries>
以下是輸出
<entries>
<entry colsep="0" rowsep="0">Default Value</entry>
<entry colsep="0" rowsep="0">Acid suppressant</entry>
</entries>