webForumDet fria alternativet

xsl templates funkar ej

6 svar · 630 visningar · startad av inspiro

inspiroMedlem sedan sep. 2005673 inlägg
#1

Hämtar en xml från webben. Försöker läsa ut den på att bra sätt men får inte till det. Jag har lyckats hämta xml-en och skriver jag ut allt med <xsl:copy-of select="/" /> så får jag ut rätt data. Men så försöker jag göra en template och jag fattar fortfarande inte hur det går till tror jag!?

<xsl:template match="/">
  <table>
    <xsl:apply-templates select="//rss:item">
    </xsl:apply-templates>
  </table>
</xsl:template match="/">

<xsl:template match="item">
  <tr>	
    <TD align="center">
      TEST <xsl:value-of select="title"></xsl:value-of>
    </TD>
  </tr>
</xsl:template>

Men jag kommer inte ens in i templaten? Den skriver bara ut allt som finns under <item> ... nån som ser felet? Jag tror inte jag har fattat det här med vad som ska stå efter "match" i en templates, hur det hänger ihop... :(

inspiroMedlem sedan sep. 2005673 inlägg
#2

hmm... call-template skulle det ju vara såklart. :)

@ndersMedlem sedan juni 200032 969 inlägg
#3

Om det fungerar med <xsl:copy-of select="/" />, så kan du ju prova med <xsl:apply-templates select="/" />.

I övrigt: Det är lite onödigt att ha sluttaggar till value-of och apply-templates. Stäng taggarna direkt med en slash sist istället.

Mvh

inspiroMedlem sedan sep. 2005673 inlägg
#4

Ok, tack @nders! :) Tar tag i den här tråden igen för jag får inte till det i alla fall... jag har alltså en xml och i den finns
<item>
<title>1</title
<title>2</title
</item>

Jag vill såklart få ut båda title men jag får bara den första, så här ser det ut nu:

<table>
  <xsl:call-template name="NewsItem" />
</table>

<xsl:template name="NewsItem" match="//rss:rdf">
  <tr>	
    <TD align="center">
      <xsl:value-of select="//rss:item/rss:title" />
    </TD>
  </tr>
</xsl:template>

Varför får jag bara upp den första, ska inte en template köra igenom hela listan?

@ndersMedlem sedan juni 200032 969 inlägg
#5

Kan du visa exakt hur xml:en ser ut, så blir det nog lättare.

mvh

inspiroMedlem sedan sep. 2005673 inlägg
#6

Den här xml-en försöker jag få ordning på:

http://www.retriever-info.com/feed/2000179/xml/sollentunahem/index.xml

mznMedlem sedan sep. 20034 inlägg
#7

Det är lite oklart om detta är exakt vad du är ute efter, men följande stylesheet ger dig en rad med en cell för varje <title> inuti en <item> i XML-filen.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
		xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
		xmlns:rss="http://purl.org/rss/1.0/">

<xsl:output indent="yes"/>

<xsl:template match="rdf:RDF">
 
  <table>
    <xsl:apply-templates select="rss:item" />
  </table>
  
</xsl:template>

<xsl:template match="rss:item">
  
  <tr>	
    <td align="center">
      <xsl:value-of select="rss:title" />
    </td>
  </tr>

</xsl:template>

</xsl:stylesheet>
124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)