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