inspiroMedlem sedan sep. 2005673 inlägg 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 hmm... call-template skulle det ju vara såklart. :)
@ndersMedlem sedan juni 200032 969 inlägg 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 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 Kan du visa exakt hur xml:en ser ut, så blir det nog lättare.
mvh
inspiroMedlem sedan sep. 2005673 inlägg mznMedlem sedan sep. 20034 inlägg 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>