0

这样做的背景是我正在使用 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 方法来显示输出吗?

非常感谢!

佩雷斯

4

1 回答 1

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>

希望这对将来的人有所帮助!

佩雷斯

于 2012-07-09T20:33:43.143 回答