1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

xsl e xslt

Discussão em 'Web Development' iniciada por alfinete, 9 de Setembro de 2008. (Respostas: 3; Visualizações: 1424)

  1. alfinete

    alfinete Power Member

    http://www.record.pt/noticia.asp?id=803638&idCanal=11

    queria fazer uma coisa em xml e xslt como esta em todas as noticias desta pagina acima, de forma a ele automaticamente dividir as noticiias por categorias de datas...

    estou a tentar mas so as consigo listar sem fazer a divisão por datas


    o xml é este

    Código:
    <?xml version="1.0" encoding="UTF-8" ?>
    
    <?xml-stylesheet type="text/xsl" href="noticia.xsl"?>
    
    <RECORD>
    
    
    
    <NOTICIAS>
        <NOTICIA ID="803729" DATA="2008-09-08" HORA="15:23:00" DATA_FIM="2008-09-15" HORA_FIM="15:23:00" URL_VER="noticia.asp?id=803729&amp;idCanal=11" ID_CANAL="11" PRINT="0" isInJeD="false">
            <CANAL><aux>Benfica</aux></CANAL>
            <TITULO><aux>Ramón Nuñez: «Estou em dívida para com Suazo»</aux></TITULO>
            <SUBTITULO><aux>MÉRITO DOS DOIS GOLOS PARTILHADO COM BENFIQUISTA</aux></SUBTITULO>
            <DESCRICAO><aux></aux></DESCRICAO>
            <TEXTO><aux> </aux></TEXTO>
            <IMAGENS>
            </IMAGENS>
            <AUTOR><aux></aux></AUTOR>
        </NOTICIA>
        
        <NOTICIA ID="803718" DATA="2008-09-08" HORA="12:26:00" DATA_FIM="2008-09-15" HORA_FIM="12:26:00" URL_VER="noticia.asp?id=803718&amp;idCanal=11" ID_CANAL="11" PRINT="0" isInJeD="false">
            <CANAL><aux>Benfica</aux></CANAL>
            <TITULO><aux>Inter quer envolver Suazo na contratação de Di María</aux></TITULO>
            <SUBTITULO><aux>"CORRIERE DELLO SPORT" AVANÇA  COM INFORMAÇÃO</aux></SUBTITULO>
            <DESCRICAO><aux></aux></DESCRICAO>
            <TEXTO><aux> </aux></TEXTO>
            <IMAGENS>
            <IMAGEM ALT="" NOME="803718_dimaria3.jpg" IMG_HEIGHT="100" IMG_WIDTH="100" SRC="imgs/DESTAQUES_145710.jpg"></IMAGEM>
            </IMAGENS>
            <AUTOR><aux></aux></AUTOR>
        </NOTICIA>
        
        <NOTICIA ID="803707" DATA="2008-09-08" HORA="09:59:00" DATA_FIM="2008-09-15" HORA_FIM="09:59:00" URL_VER="noticia.asp?id=803707&amp;idCanal=11" ID_CANAL="11" PRINT="0" isInJeD="false">
            <CANAL><aux>Benfica</aux></CANAL>
            <TITULO><aux>Luisão titular na vitória do Brasil</aux></TITULO>
            <SUBTITULO><aux>VITÓRIA FRENTE AO CHILE COM GOLOS DE LUÍS FABIANO E ROBINHO</aux></SUBTITULO>
            <DESCRICAO><aux></aux></DESCRICAO>
            <TEXTO><aux> </aux></TEXTO>
            <IMAGENS>
            <IMAGEM ALT="" NOME="803707_robinhoroanldinho.jpg" IMG_HEIGHT="100" IMG_WIDTH="100" SRC="imgs/DESTAQUES_145700.jpg"></IMAGEM>
            </IMAGENS>
            <AUTOR><aux></aux></AUTOR>
        </NOTICIA>
        
        
        <NOTICIA ID="803638" DATA="2008-09-07" HORA="22:07:00" DATA_FIM="2008-09-14" HORA_FIM="22:07:00" URL_VER="noticia.asp?id=803638&amp;idCanal=11" ID_CANAL="11" PRINT="0" isInJeD="false">
            <CANAL><aux>Benfica</aux></CANAL>
            <TITULO><aux>Reyes confiante na recuperação</aux></TITULO>
            <SUBTITULO><aux>ESPANHOL QUER DEFRONTAR NÁPOLES NA TAÇA UEFA</aux></SUBTITULO>
            <DESCRICAO><aux></aux></DESCRICAO>
            <TEXTO><aux> </aux></TEXTO>
            <IMAGENS>
            <IMAGEM ALT="" NOME="803638_reyeshotel.jpg" IMG_HEIGHT="100" IMG_WIDTH="100" SRC="imgs/DESTAQUES_145667.jpg"></IMAGEM>
            </IMAGENS>
            <AUTOR><aux></aux></AUTOR>
        </NOTICIA>
    
    </NOTICIAS>
    </RECORD>
    









    eu queria listar a nosticias referentes ao atributo
    DATA="2008-09-08"

    da tag noticia
     
    Última edição: 9 de Setembro de 2008
  2. SoundSurfer

    SoundSurfer Power Member

    XPath: " //NOTICIA[@DATA="2008-09-08"] "
     
  3. alfinete

    alfinete Power Member

    code xsl

    _____________________________________________________________

    Código:
    <?xml version="1.0" encoding="utf-8"?>
    
    <xsl:stylesheet version="1.0" 
    
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:msxsl="urn:schemas-microsoft-com:xslt"
        xmlns:vt="http://www.viatecla.pt/"
        exclude-result-prefixes="msxsl vt">
     
     <!--
        <msxsl:script language="JavaScript" implements-prefix="vt">
            <![CDATA[
            
                var data_act = new array ("","","") ;
    
                
                
                document.getElementById('teste').InnerHTML='agora';
                
                
                /*function setdata(dataact)
                {
                    for (var i=0;i<3;i++)
                    {
                     if (data_act[i]='' && dataact!=data_act[i])
                       data_act[i] = dataact;
                    }
                }*/
                
                /*
                function getdata(dataact)
                {
                   var str = new string();
                   
                   for (var i=0;i<3;i++)
                     {
                      var = data_act[i];                      
                      document.getElementById('teste').value=var;
                      setdata(dataact);
                     }
                     
                    return var; 
                }`*/        
                
            ]]>
       </msxsl:script>            -->
                    
        <xsl:template match="/">
            <script language="JavaScript">
                <xsl:comment>
                    <![CDATA[                    
                        
                        
                    
                            document.getElementById('teste').InnerHTML='agora';
                        
                        
                
                    ]]>
                </xsl:comment>
        </script>
            <html>
             <body>
              
                <span border="1" class="tituloprimc">
                        <span class="spantit">Todas as Noticias</span>
                </span> 
                <br/>
                
                <span border="1" class="titulosec">
                        <span class="spantit">dia</span>
                </span>    
                
                
                
                <xsl:apply-templates/>
                
            </body>    
           </html>
        </xsl:template>
        
         
        
         
        
        <xsl:template match="NOTICIAS/NOTICIA">
          
      
            <!--  <xsl:if (vt.getdata([email protected]')!="@DATA") >-->
                  
                   <br/>
                   <label id ="teste" ></label>
                   <br/>
                     <xsl:apply-templates select= "@DATA"/> -
                   <xsl:apply-templates select= "@HORA"/> - 
                   
                   <span class="titulo">
                   <xsl:apply-templates select="CANAL"/>
                   <xsl:apply-templates select="TITULO"/>
                   </span>
        
                   <br/>
                   <span class="Subtitulo">
                   <xsl:apply-templates select="SUBTITULO"/>
                   </span>
                 
                   <br/>
            <!-- </xsl:if>-->
            
            
              
        </xsl:template>
        
        <!--
        <xsl:template match="*">
        
            <xsl:value-of select="vt:getdata(@DATA)"/>
        
        </xsl:template>
        
        -->
        
    
        
        
        
        
        
        
        
        <!--
            <xsl:template match="HORA">
    
               <br/>
    -
                <span class="titulo">
                    <xsl:value-of select="@HORA"/>
                </span>
                    
            </xsl:template>
          
            <xsl:template match="CANAL">
    
               <br/>
    -
                <span class="titulo">
                    <xsl:value-of select="."/>
                </span>
                    
            </xsl:template>
            
            <xsl:template match="TITULO">
    
                 <span class="titulo">
                    <xsl:value-of select="."/>
                </span>
                
                <br/>
            </xsl:template>
            
            
            <xsl:template match="SUBTITULO">
    
                
    -
                <span class="Subtitulo">
                    <xsl:value-of select="."/>
                </span>
                
                <br/>
                
            </xsl:template>
         -->
            
        
        
        
    </xsl:stylesheet>
    
    
    code css

    _____________________________________________________________
    Código:
    
    
    
    .tituloprimc
    {
    width:500px;
    height:25px;
    background-color:#666666;
    color:white;
    font-size:16px;
    font-weight:bold;
    }
    
    .titulosec
    {
    width:500px;
    height:25px;
    background-color:#CCCCCC;
    color:black;
    font-size:16px;
    font-weight:bold;
    }
    
    .spantit
    {
    position:relative;
    top:3px;
    }
    
    .titulo
    {
    font-size:12px;
    font-weight:bold;
    color:#000000;
    }
    
    .Subtitulo
    {
    
    
    font-size:11px;
    color:#ff0000;
    }
    
    


    code html

    _____________________________________________________________
    Código:
    <html>
    
    <head>
    <link rel="stylesheet" type="text/css" href="noticias.css">
    <script type="text/javascript">
    function loadXMLDoc(fname)
    {
    var xmlDoc;
    // code for IE
    if (window.ActiveXObject)
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation 
    && document.implementation.createDocument)
      {
      xmlDoc=document.implementation.createDocument("","",null);
      }
    else
      {
      alert('Your browser cannot handle this script');
      }
    xmlDoc.async=false;
    xmlDoc.load(fname);
    return(xmlDoc);
    }
    
    function displayResult()
    {
    xml=loadXMLDoc("noticia.xml");
    
    xsl=loadXMLDoc("noticia.xslt");
    // code for IE
    if (window.ActiveXObject)
      {
      ex=xml.transformNode(xsl);
      document.getElementById("teste").innerHTML=ex;
      }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation 
    && document.implementation.createDocument)
      {
      xsltProcessor=new XSLTProcessor();
      xsltProcessor.importStylesheet(xsl);
      resultDocument = xsltProcessor.transformToFragment(xml,document);
      document.getElementById("teste").appendChild(resultDocument);
      }
    }
    </script>
    </head>
    <body id="teste" onLoad="displayResult()">
    </body>
    </html>
    
    

    o codigo html é para ver as coisas a correr

    o que que quero fazer é:

    onde diz "dia" vai aparecer a data da noticia

    e por baixo tdas as noticias referentes a essa data.

    e quero listar 3 datas..

    data x

    hora : ....

    noticia: .....

    etc

    data y

    hora : ....

    noticia: .....

    etc

    data z

    hora : ....

    noticia: .....

    etc

    é mais ou menos isto resumido
     
  4. alfinete

    alfinete Power Member

    nome dos ficheiros

    html- noticia.html

    css -noticias.css

    xml-noticia.xml

    xslt- noticia.xslt
     

Partilhar esta Página