【发布时间】:2017-05-26 14:16:56
【问题描述】:
我有一个更复杂的xml,但要简化
<Canal id="RTP1" posicao="1" tematica="nacional">
<nome>Radio Televisao Portuguesa 1</nome>
<logo>../images/rtp1.jpg</logo>
<Dia id="Antevespera">
<!-- PROGRAMAS -->
<programa designacao="televendas" genero="Entretenimento">
<descricao>Enganar o povo</descricao>
<horario>
<hora_inicio>00:00</hora_inicio>
<duracao>390</duracao>
<hora_fim>06:30</hora_fim>
</horario>
</programa>
<programa designacao="Bom dia Portugal" genero="Informativo">
<descricao>O BOM DIA PORTUGAL é um programa de informação apresentado por João Tomé...</descricao>
<horario>
<hora_inicio> 06:30</hora_inicio>
<duracao>210</duracao>
<hora_fim>10:00</hora_fim>
</horario>
</programa>
<programa designacao="A Praça" genero="Entretenimento">
<descricao>Manhãs divertidas e informativas.</descricao>
<horario>
<hora_inicio>10:00</hora_inicio>
<duracao>132</duracao>
<hora_fim>12:12</hora_fim>
</horario>
</programa>
<programa designacao="A Minha Mãe Cozinha Melhor Que a Tua - Diários" genero="Entretenimento">
<descricao>Numa prova contra o tempo, duas equipas de dois familiares, competem para provar que a
sua receita de família é a melhor..
</descricao>
<horario>
<hora_inicio>12:12</hora_inicio>
<duracao>48</duracao>
<hora_fim>13:00</hora_fim>
</horario>
</programa>
</Dia>
<!-- DIA -->
<Dia id="Vespera">
<!-- PROGRAMAS -->
<programa designacao="troca o paco" genero="Entretenimento">
<descricao>Enganar o povo
</descricao>
<horario>
<hora_inicio>00:00</hora_inicio>
<duracao>390</duracao>
<hora_fim>06:30</hora_fim>
</horario>
</programa>
<programa designacao="Bom dia Portugal" genero="Informativo">
<descricao>O BOM DIA PORTUGAL é um programa de informação apresentado por João Tomé de Carvalho e
Carla Trafaria
</descricao>
<horario>
<hora_inicio>06:30</hora_inicio>
<duracao>0210</duracao>
<hora_fim>10:00</hora_fim>
</horario>
</programa>
</Dia>
</Canal>
</Programacao>
<GeneroProgramas>
<genero>Entretenimento</genero>
<genero>Cultural</genero>
<genero>Informativo </genero>
<genero>Ficcao </genero>
<genero>Desporto</genero>
</GeneroProgramas>
</EPG>
我想像图像中一样输出到 html 页面。当您单击已经使用 xslt 制作的按钮时,我想要相应 div 选项卡中的所有“程序”。 pretended output
我现在的 xsl 是
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:epg="http://xml.dei.isep.ipp.pt/schema/EPG" xmlns:xls="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" href="../css/styleCriterios.css"/>
<script type="text/javascript" src="../JS/criterios.js"/>
</head>
<body>
<p>Visualize os programas por genero</p>
<!--criar as tabs -->
<xsl:apply-templates select="epg:EPG/epg:GeneroProgramas"/>
</body>
</html>
</xsl:template>
<!-- templates para genero de programas -->
<xsl:template match="epg:GeneroProgramas">
<div class="tab">
<xsl:for-each select="epg:genero">
<button class="tablinks">
<xsl:attribute name="onClick">
<xsl:text>openType(event, '</xsl:text>
<xsl:value-of select="text()"/>
<xsl:text>')</xsl:text>
</xsl:attribute>
<xsl:value-of select="text()"/>
</button>
</xsl:for-each>
</div>
<xsl:for-each select="epg:genero">
<div class="tabcontent">
<xsl:attribute name="id">
<xsl:value-of select="current()"/>
</xsl:attribute>
<xsl:for-each select="//epg:programa">
<!-- IT HERE WHERE I NEED TO COMPARE AND JUST OUTPUT THE PROGRAMA THAT HAVE IN @DESIGNACAO THE SAME AS epg:genero text() -->
</xsl:for-each>
</div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
所以这就是我所拥有的,而我被困住了。在过去的 3 天里已经这样做了,我必须在周日 23:55 之前把它送到学校。如果有人可以帮助我,我将非常感激。
【问题讨论】: