0
我正在使用具有XML文件的Flash地圖。我使用XSLT從地圖的網頁(Flash地圖外)填充了一個XML列表。我想通過XSL爲此添加一個JS函數,該函數從將與地圖交互的XML中選擇(填充)元素。是否有可能獲得由xsl填充的項目的值?
例如,我的列表是50個州。這裏是一個小部分來自XML:
<attributes>
<col name="State">Kentucky</col>
<STATENAME>Kentucky</STATENAME>
</attributes>
等等......所有50個州都包含在XML如上
這是我如何填充列表:
<table border="0">
<tr bgcolor="#9acd32">
<th>State</th>
</tr>
<xsl:for-each select="map/layer/feature/attributes">
<xsl:sort select="STATENAME"/>
<tr>
<td><a onMouseOver='highlight()' onMouseOut='highlight_clear()'><xsl:attribute name="href">http://mysite.com/<xsl:value-of select="STATENAME"/>.html</xsl:attribute><xsl:value-of select="STATENAME" /></a></td>
</tr>
</xsl:for-each>
</table>
所有50個州以這種方式出現,並鏈接到他們各自的頁面:http://mysite.com/statename.html
這裏是Javascript:
function highlight() {
theMap.features('State="Kentucky"').highlight({visible: true, fillColor: "#FFFF00", fillAlpha: 1.0});
}
這裏的關鍵是('State =「Kentucky」')我試圖讓State =列表中填充的SAME狀態,而不必編寫50個不同的函數 - 每個狀態一個。例如,當所有50個州都有人居住時,如果鼠標移過德克薩斯州,它會自動調出地圖。特徵('州=「德克薩斯州」'),如果它經過內布拉斯加州,那麼它會帶來內布拉斯加州。
我試着這樣做:
function highlight() {
var sn='<xsl:value-of select="STATENAME"/>';
theMap.features('State="sn"').highlight({visible: true, fillColor: "#FFFF00", fillAlpha: 1.0}); }
,但它沒有工作,我也沒有想到會。但是,這基本上是我想要發生的想法。
想法?
這奏效了!謝謝你太多了! – user2162298 2013-03-20 20:44:36