2012-08-14 22 views
0

我在XML文件中的以下標籤:我怎麼能顯示工具提示表:XSL

<more_details> 
    <source>192.168.1.1</source> 
    <destination>10.10.10.10</destination> 
    <vlan>192.168.0.0/24</vlan> 
    <date>29/3/1391</date> 
    <count>24</count> 
</more_details> 

我想設計在使用XSL提示表;(我要當鼠標越過在頁面中一個特定的鏈接,它代表了數據表中的數據來自XML文件)

我寫了下面的線在我的XSL文件來實現這一目標的目標:

<a href=""> 
    <xsl:attribute name="title"><table style='color:#efefef; background:none !important;'> 
    <tr> 
     <td><xsl:value-of select="source"/></xsl:value-of><td> 
     <td><xsl:value-of select="destination"/></xsl:value-of></td> 
     <td><xsl:value-of select="vlan"/></xsl:value-of></td> 
     <td><xsl:value-of select="date"/></xsl:value-of></td> 
     <td><xsl:value-of select="count"/></xsl:value-of></td> 
    </tr> 
    </table></xsl:attribute> 
    more details 
</a> 

它工作在一個html文件,但不在xsl文件中; XSL會自動刪除所有的html標籤。

這樣的:

<a href="" title="192.168.2.1125.45.24.5192.168.0.0/2429/2/1390 - 12:1424"> 
    link 
</a> 

這意味着,當鼠標移到「更多細節」二字,工具提示中顯示的結果是:

192.168.2.1125.45.24.5192.168.0.0/2429/2/1390 - 12:1424 

我想告訴每一個上面的標籤在表格的一列中。 (待結構化的) 但是當我運行該程序,它顯示在未結構化的格式數據(未在表中)

我還考試系統第二種方式:

<a href=""> 
    <xsl:attribute name="title">&lt;table style='color:#efefef; background:none !important;'> 
    <tr> 
     <td><xsl:value-of select="source"/>&lt;/td> 
     <td><xsl:value-of select="destination"/>&lt;/td> 
     <td><xsl:value-of select="vlan"/>&lt;/td> 
     <td><xsl:value-of select="date"/>&lt;/td> 
     <td><xsl:value-of select="count"/>&lt;/td> 
    </tr> 
    </table></xsl:attribute> 
    more details 
</a> 

和它也不會工作。 這個第二種方式的結果是:

我真的需要你的幫助,任何答案都將非常感激。 thanx很多

+0

在HTML'title'屬性中不能有表格。 HTML(也是XML)僅支持屬性值中的字符串。 – Tomalak 2012-08-14 11:42:04

+0

嗯......但是當我把這個代碼放在HTML文件(不是xsl)中的的標題屬性中時,工具提示顯示了一個表格。 – user1597122 2012-08-14 11:49:25

+0

什麼瀏覽器?你能爲此做一個jsFiddle嗎? – Tomalak 2012-08-14 12:00:18

回答

1

在HTML title屬性中不能有表格。這是不可能的,停止嘗試。

你可以做什麼:

  1. 使用可用來生成自定義工具提示的JavaScript庫之一。例如,jQuery有插件,但還有很多其他插件。這些庫可以在鼠標懸停時顯示任何類型的HTML,因此表格不會成爲問題。
  2. 只需爲您的屬性添加換行符。大多數瀏覽器支持title屬性中的換行符並將其顯示在屏幕上。不如桌子漂亮,但可能就夠了。

我只會詳細介紹第二個選項。第一個超出了這個問題的範圍。

<a href=""> 
    <xsl:attribute name="title"> 
    <xsl:value-of select="concat('Source: ', source, '&#10;')" /> 
    <xsl:value-of select="concat('Destination: ', destination, '&#10;')" /> 
    <xsl:value-of select="concat('VLAN: ', source, '&#10;')" /> 
    <xsl:value-of select="concat('Date: ', date, '&#10;')" /> 
    <xsl:value-of select="concat('Count: ', count)" /> 
    </xsl:attribute> 
    <xsl:text>more details</xsl:text> 
</a> 
+0

謝謝你親愛的Tomalak.now它具有更好的結構(每個標籤是單獨的一行) 結果是: 來源: 目的地: VLAN: 日期: 計數: 的問題是,它不顯示標籤的價值。 – user1597122 2012-08-15 05:19:55

+0

我有問題:爲什麼下面的行不能在xsl中工作?: more details 它不顯示值 !!這意味着在的標題屬性裏我們不允許使用xsl或html標籤?那麼解決方案是什麼? – user1597122 2012-08-15 05:45:21

+0

真的很對! 現在它工作:) – user1597122 2012-08-15 09:30:48