Portál AbcLinuxu, 31. července 2025 00:18
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.