2012-04-21 89 views
-2

我想弄清楚如何通過點擊表中的元素,在xml文件上使用xslt轉換來更改html頁面。 我環顧四周,找不到答案,這裏是一個簡單的代碼,我想知道如何更改頁面並顯示一些內容: 我認爲您不需要閱讀代碼,除了最後一個是XSLT。我已經添加了代碼的其他部分,以防他們需要更改。xslt轉換鏈接

XSD:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com" 
xmlns="http://www.w3schools.com"> 

<xs:element name="Table"> 
<xs:complexType> 
<xs:sequence maxOccurs="unbounded"> 
<xs:element ref="Person"/> 
</xs:sequence> 
</xs:complexType> 
</xs:element> 
<xs:element name="Person"> 
<xs:complexType> 
<xs:all maxOccurs="1"> 
<xs:element ref="Name"/> 
<xs:element minOccurs="1" ref="Age"/> 
</xs:all> 
</xs:complexType> 
</xs:element> 
<xs:element name="Name"> 
<xs:complexType> 
<xs:sequence> 
<xs:element maxOccurs="1" ref="theName"/> 
<xs:element maxOccurs="1" ref="Description"/> 
</xs:sequence> 
</xs:complexType> 
</xs:element> 
<xs:element name="theName" type="xs:string"/> 
<xs:element name="Description" type="xs:string"/> 
<xs:element abstract="false" name="Age" type="xs:positiveInteger"/> 
</xs:schema> 

所以我創建了兩個元素,theName和年齡。名稱由String TheName和String Description組成。年齡只是一個積極的整合。現在,我創建了只選擇兩個不同的人的XML文件:

XML:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="try.xsl"?> 
<Table xmlns="http://www.w3schools.com" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.w3schools.com try.xsd"> 
<Person> 
<Name> 
<theName>Thomas</theName> 
<Description>He is a nice guy</Description> 
</Name> 
<Age>10</Age> 
</Person> 

<Person> 
<Name> 
<theName>Peter</theName> 
<Description>He is good at swimming</Description> 
</Name> 
<Age>12</Age> 
</Person> 

</Table> 

我的轉型,現在是做一個表的人的名字在那裏年齡的功能:

XSLT:

<?xml version="1.0" encoding="UTF-8"?> 

<xsl:stylesheet 

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:ws="http://www.w3schools.com" 
version="1.0"> 

<xsl:template match="/"> 
<html> 

<table border="2"> 
<tr bgcolor="red"> 
<th>Name</th> 
<th>Age</th> 
</tr> 
<xsl:for-each select="ws:Table/ws:Person"> 
<tr> 

<td><xsl:value-of select="ws:Name/ws:theName"/></td> 
<td><xsl:value-of select="ws:Age"/></td> 

</tr> 
</xsl:for-each> 
</table> 

這是我需要幫助的地方,如果我點擊該人的姓名,該如何顯示該人的描述。所以基本上,如果我點擊托馬斯,我想展示「他是一個好人」,如果我點擊彼得,我想展示「他是一個很好的游泳者」。

</html> 
</xsl:template> 
</xsl:stylesheet> 

謝謝

+0

您是否嘗試過搜索javascript/CSS解決方案以瞭解如何在鼠標點擊時顯示/隱藏信息? – erikxiv 2012-04-21 15:00:28

+0

不,用xslt不行嗎? – John 2012-04-21 15:15:41

+0

(我從來沒有使用JavaScript) – John 2012-04-21 15:16:16

回答

0

的XSLT腳本將生成一個文本文件,在這種情況下,HTML(網頁)頁面,這反過來會被其他應用程序(Web瀏覽器)來解釋。有關如何創建具有流暢交互的動態網頁的信息,請查看CSSJavaScript上的教程。