2012-04-21 3 views
-2

Я пытаюсь выяснить, как изменить страницу html с помощью преобразования xslt в XML-файле, щелкнув элемент в таблице. Я огляделся и не нашел ответа, вот простой код, и я хотел бы знать, как изменить страницу и отобразить что-то: Я не думаю, что вам необходимо прочитать код, кроме последний, 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

+0

нет, не возможно с xslt? – John

+0

(Я никогда не использовал javascript) – John

ответ

0

Сценарий XSLT будет производить текстовый файл, в этом случае (веб) страницы HTML, что в свою очередь, будет интерпретироваться другим приложением (веб-браузер). Для получения информации о том, как вы можете создать динамическую веб-страницу со слабыми взаимодействиями, просмотрите руководства по CSS и JavaScript.

Смежные вопросы