xslt转换链接

时间:2012-04-21 14:48:13

标签: xml xslt xsd hyperlink

我试图通过点击表格中的元素来弄清楚如何在xml文件上使用xslt转换来更改html页面。 我环顾四周,找不到答案,这是一个简单的代码,我想知道如何更改页面并显示一些内容: 我认为除了最后一个代码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>

所以我创建了两个元素,名称和年龄。 Name由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>

谢谢

1 个答案:

答案 0 :(得分:0)

XSLT脚本将生成一个文本文件,在本例中为HTML(Web)页面,而该页面又将由另一个应用程序(Web浏览器)解释。有关如何使用光滑互动创建动态网页的信息,请查看CSSJavaScript上的教程。