Portál AbcLinuxu, 29. prosince 2025 15:45
Zdravim, do skoly robim blog pomocou XSLT a chcem si tam dat posledny clanok/spravicku z abc-cka ziskany z rss. Do premennej si vlozim posledny element "item" a potom z neho taham title a link. Nejak takto:
<xsl:variable name="abc" select="document('http://www.abclinuxu.cz/auto/abc.rss')//rdf:RDF/item[position()=last()]" />
<a href="{$abc/link}"><xsl:value-of select="$abc/title" /></a>
Ale nefunguje to. Ani bez toho rdf:RDF, ani s nim (namespace rdf som nadefinoval, aj rss 1.0) Rovnaky postup na rss feed Roota a jednoho radia funguje. Nevedel by niekto poradit, neriesil to uz niekto? Dik
item[position()=last()] je podle mne nesmysl. Nema tam byt item[last()]?
A pak jeste zapist <a href="{$abc/link}"></a> nemuze fungovat, protoze ten href neni ve jmennem prostoru XSLT, takze XSLT procesor jej presne doslova okopiruje do vystupu.
<xslt:stylesheet
xmlns:xslt="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rss1="http://purl.org/rss/1.0/"
exclude-result-prefixes="rdf rss1"
version="1.0">
<xslt:output method="xml" encoding="utf-8" indent="yes"/>
<xslt:template match="/">
<last_abc>
<xslt:variable name="abc"
select="document('http://www.abclinuxu.cz/auto/abc.rss')//rdf:RDF/rss1:item[1]"/>
<a href="{$abc/rss1:link}"><xslt:value-of select="$abc/rss1:title"/></a>
</last_abc>
</xslt:template>
Ciste teoreticky: RSS1 definuje polozky kanalu pomoci RDF (//rss1:items/rdf:Seq/rdf:li), ktere pres atribut @rdf:resource ukazuje na //rss1:item[@rdf:about]/. Takze by bylo zahodno kontrolovat i to.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.