2013-03-20 91 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

相關問題