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 に答える