使用XSL转换不显示小数

时间:2012-07-09 19:07:21

标签: xslt xpath solr

这样做的背景是我正在使用Solr搜索结果。结果以XML格式返回。我正在使用XSL转换来显示结果。

<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Latitude</th>
<th>Longitude</th>
</tr>
</thead>
<xsl:for-each select="response/result/doc">
<xsl:sort select="str[@name='Name']"/>
<xsl:sort select="int[@name='Age']"/>
<xsl:sort select="???[@name='lat']"/>
<xsl:sort select="???[@name='lng']"/>
<tbody>
<tr>
<td><xsl:value-of select="str[@name='Name']"/></td>
<td><xsl:value-of select="int[@name='Age']"/></td>
<td><xsl:value-of select="???[@name='lat']"/></td>
<td><xsl:value-of select="???[@name='lng']"/></td>
</tr>
</tbody>
</xsl:for-each>
</table>

我最初将每个字段编入索引为字符串。一旦我改变它并将数字索引为整数,它们就不会显示在输出中。我完全猜测并且使用int,因为我将它们编入为整数并且它有效。 ;)

以下是我在Solr中索引纬度和经度的数据类型:

<field name="lat" type="latLongDouble" indexed="true" stored="true"/>
<field name="lng" type="latLongDouble" indexed="true" stored="true"/>

我不确定任何可用于“???”的正确XSL数据类型上方。

  1. 你能提供一份这些试用清单吗?
  2. 您能为我提供另一种显示输出的XSL方法吗?
  3. 非常感谢!

    佩雷斯

1 个答案:

答案 0 :(得分:0)

尼斯!花了一些时间,但我想通了。

<doc>
<int name="Age">14</int> 
<str name="Name">Jonh Doe</str> 
<double name="lat">45.17614</double> 
<double name="lng">-93.87341</double> 
</doc>

从XML查看每个元素的数据类型,并使用它代替“???”上方。

在我的例子中,我会这样做:

<td><xsl:value-of select="double[@name='lat']"/></td>
<td><xsl:value-of select="double[@name='lng']"/></td>

希望这可以帮助将来的某个人!

佩雷斯