2012-12-10 26 views
0

我正在通過XSLT從XML文件轉換數據,該數據將在HTML頁面上顯示爲表格。 (使用javascript代碼調用XML和XSLT文件,這些代碼與w3schools XSLT on the Client頁面上的代碼相同。)我的一個XML字段包含一個URL。我的轉換創建該字段的href屬性,但不是從XML文件發佈的URL,它的URL的HTML頁面,該表將生活在取代它xslt生成的表格中的URL重定向到該頁面

我的XML看起來是這樣的:

<database> 
<Table> 
<Title>Title</Title> 
<URL value="www.link.com">Watch this video</URL> 
</table>   

我的XSLT是這樣的:

<table> 
<tr> 
<th>Title</th> 
<th>URL</th> 
</tr> 
<xsl:for-each select="database/table"> 
<tr> 
<td><xsl:value-of select="Title"/></td> 
<td> 
<a> 
<xsl:attribute name="href"> 
<xsl:value-of select="URL/@VALUE"/> 
</xsl:attribute> 
<xsl:value-of select="URL"/> 
</a> 
</td> 
</tr> 
</xsl:for-each> 
</table> 

但HTML頁面上的 「觀看此視頻」 鏈接是不是 「www.link.com」,而是 「www.HTMLpage.com。」如果我將XSL轉換添加到XML文檔並在瀏覽器中打開它,同樣的事情發生 - 鏈接仍然會轉到該頁面的地址,而不是外部的我想要的地址。

回答

0

XPath區分大小寫

替換

<xsl:value-of select="URL/@VALUE"/> 

<xsl:value-of select="URL/@value"/> 

現在經校正的變換的結果,當所提供的XML文檔(施加也需要類似的校正和封閉標籤),產生想要的結果

<table> 
    <tr> 
     <th>Title</th> 
     <th>URL</th> 
    </tr> 
    <tr> 
     <td>Title</td> 
     <td> 
     <a href="www.link.com">Watch this video</a> 
     </td> 
    </tr> 
</table> 
+0

謝謝!幾乎就是這樣。現在它將正確的URL添加到舊格式(壞格式)的末尾。 www.HTMLpage/www.link.com。 – daehwot

+0

查看生成的HTML代碼。我猜想沒有附加任何東西。 URL語法可能是錯誤的,並且被解釋爲相對URL而不是絕對URL(添加'http://')。 –

+0

謝謝!就是這樣。 – daehwot