可以说我有如下输入。
<country>
<name>countryname</name>
<capital>captialname</capital>
<population>19000</population>
</country>
我正在将元素名称转换为使用 xsl 说上层代码。有时可能不会出现国家的子元素。所以我可以如下写我的转换。
<xsl:template match="country">
<xsl:element name="COUNTRY">
<xsl:apply-templates select="name" />
<xsl:apply-templates select="capital" />
<xsl:apply-templates select="population" />
</xsl:element>
</xsl:template>
<xsl:template match="name">
<xsl:element name="NAME">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
<xsl:template match="capital">
<xsl:element name="CAPITAL">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
<xsl:template match="population">
<xsl:element name="POPULATION">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
或者我可以这样做。
<xsl:template match="country">
<xsl:element name="COUNTRY">
<xsl:if test="name">
<xsl:element name="NAME">
<xsl:value-of select="." />
</xsl:element>
</xsl:if>
<xsl:if test="capital">
<xsl:element name="CAPITAL">
<xsl:value-of select="." />
</xsl:element>
</xsl:if>
<xsl:if test="population">
<xsl:element name="POPULATION">
<xsl:value-of select="." />
</xsl:element>
</xsl:if>
</xsl:element>
我想知道哪种方式会使用更少的内存。我拥有的实际代码在模板内部大约有七个级别。所以我需要知道的是,如果我不使用简单元素的模板,是否会提高内存使用率。