Doch eins nach dem anderen. Wie sieht nun zunächst der URL zur Kommentar-Seite eines Blog-Eintrags bei Blogger.com syntaktisch aus?
http://www.blogger.com/comment.g?blogID=NUMMER&postID=NUMMERVariabel sind also die Angaben der Parameter "blogID" und "postID". Diese Daten findet man im RSS-Feed im Knoten (Node) "guid".
<guid isPermaLink='false'>
tag:blogger.com,1999:blog-5974424768978008959.post-7382480864588189143
</guid>
Mann muss also aus diesem Knoten (Node) die benötigten Daten extrahieren. Dies kann man mit XSLT und den XPath-Funktionen substring_before() und substring_after() realisieren. Ich habe hier nicht die XPath-Funktion substring() verwendet, da ich nicht weiß, ob sich die Länge der Werte irgendwann mal verändert.
"blog"-Wert extrahieren:
<xsl:variable name="blog" select="substring-before(substring-after(guid, 'blog-'), '.post-')"/>
<xsl:text>blog: </xsl:text><xsl:value-of select="$blog"/>
"post"-Wert extrahieren:
<xsl:variable name="post" select="substring-after(guid, 'post-')"/>
<xsl:text>post: </xsl:text><xsl:value-of select="$post"/>
Ich habe die Werte in Variablen gespeichert, um nun anhand dieser den Link auf die Kommentar-Funktion bequem erstellen zu können:
Link zur Kommentar-Funktion:
<a href="http://www.blogger.com/comment.g?blogID={$blog}&postID={$post}">
Kommentar schreiben
</a>
Der gesamte XSLT-Quellcode sieht dann so aus:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-15" indent="no"/>
<xsl:template match="/">
<xsl:for-each select="rss/channel/item">
<xsl:value-of select="title"/>
<br/>
<xsl:text>guid: </xsl:text><xsl:value-of select="guid"/>
<br/>
<br/>
<!-- blog -->
<xsl:variable name="blog" select="substring-before(substring-after(guid, 'blog-'), '.post-')"/>
<xsl:text>blog: </xsl:text><xsl:value-of select="$blog"/>
<!-- blog -->
<!-- post -->
<xsl:variable name="post" select="substring-after(guid, 'post-')"/>
<xsl:text>post: </xsl:text><xsl:value-of select="$post"/>
<!-- /post -->
<br/>
<br/>
<a href="http://www.blogger.com/comment.g?blogID={$blog}&postID={$post}">
Kommentar schreiben
</a>
<hr/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
0 Kommentare:
Kommentar veröffentlichen