2013-03-20 59 views
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}); } 

,但它没有工作,我也没有想到会。但是,这基本上是我想要发生的想法。

想法?

回答

0

你应该能够做到这一点:

<table border="0"> 
    <tr bgcolor="#9acd32"> 
    <th>State</th> 
    </tr> 
    <xsl:for-each select="map/layer/feature/attributes/STATENAME"> 
    <xsl:sort select="."/> 
     <tr> 
     <td> 
      <a onMouseOver='highlight("{.}")' 
      onMouseOut='highlight_clear()' 
      href='http://mysite.com/{.}.html'> 
      <xsl:value-of select="." /> 
      </a> 
     </td> 
     </tr> 
    </xsl:for-each> 
</table> 

然后,只需改变你的亮点()函数来此:

function highlight(state) { 
    theMap.features('State="' + state + '"') 
      .highlight({visible: true, 
         fillColor: "#FFFF00", 
         fillAlpha: 1.0});   
} 
+0

这奏效了!谢谢你太多了! – user2162298 2013-03-20 20:44:36

相关问题