我正在使用xslt 2.0版本并检索记录表格 SOLR XML 。
这是我的产品表的solr xml格式。
<doc>
<int name="Id">1</int>
<str name="Name">$5 Virtual Gift Card</str>
<float name="Price"></float>
<str name="SeName">5-virtual-gift-card</str>
<float name="OldPrice">0.0</float>
</doc>
我想只在XML文件中显示产品表中非空或零字段的那些记录。
请给我一些建议。答案 0 :(得分:1)
您可以尝试在solr中使用xslt:
<xsl:stylesheet version='2.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output
method="xml"
encoding="utf-8"
media-type="application/xml"
cdata-section-elements="shortdescription"
/>
<xsl:template match='/'>
<items>
<xsl:apply-templates select="response/result/doc"/>
</items>
</xsl:template>
<!-- search results xslt -->
<xsl:template match="doc">
<xsl:variable name="Price" select="format-number(*[@name = 'Price'], '#.0000###')"/>
<xsl:variable name="PriceStringToInt" select="number($Price)"/>
<!--Check some conditions like Price grater zero, price not equal to zero, price not null -->
<xsl:if test="$PriceStringToInt > 0 and $PriceStringToInt != 0 and $Price != ''>
<item>
<!--Price field-->
<price><xsl:value-of select="$Price"/></price>
</item>
</xsl:if>
</xsl:template>
</xsl:stylesheet>