freq.9 Geschrieben 25. Februar 2005 Teilen Geschrieben 25. Februar 2005 Ich habe mir eine RSS-Klasse in PHP5 geschrieben und wollte den Output (XML) nun mit XSL "stylen". Nun habe ich in einem der Einträge ein Link in Form von: <a href="url.ext">text</a> aber dies soll auch als Link angezeigt werden und nicht als Plaintext. Wie mache ich das? Habe in meinem XSL-Buch geguckt und auch schon im Netz rumgesucht aber keine passende Hilfen gefunden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 25. Februar 2005 Teilen Geschrieben 25. Februar 2005 Du erzeugst ein template für die Links, und kopierst den Inhalt komplett. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 26. Februar 2005 Teilen Geschrieben 26. Februar 2005 hm ist das jetzt so gemeint wie hier? http://forum.fachinformatiker.de/showthread.php?t=74619 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 26. Februar 2005 Autor Teilen Geschrieben 26. Februar 2005 Mit euren Antworten kann ich bis jetzt leider nichts anfangen o_O... @kills: Das in dem anderen Thread hat eher was mitm DTD zutun und weniger direkt mit XSL. @Enrico P.: Wie meinst du das? Wie soll ich denn ein Template für die Links erstellen? Fakt ist bis jetzt, dass die Links in meiner XML Datei, die durch XSL gestyled wird als Plaintext und nicht als Link dargestellt werden. Somit kann ich die Links nicht klickt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 27. Februar 2005 Teilen Geschrieben 27. Februar 2005 @kills: Das in dem anderen Thread hat eher was mitm DTD zutun und weniger direkt mit XSL. Der Doctype ist nichts anderes wie jedes andere HTML Element... ------------------------------------------ könntest du mal bitte ein beispiel posten, wie dein XML u. XSL aussieht, was dabei rauskommt u. was eigentlich rauskommen sollte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 27. Februar 2005 Teilen Geschrieben 27. Februar 2005 <xsl:template match="a"> <xsl:copy-of select=".|*|@*"/> </xsl> [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 27. Februar 2005 Autor Teilen Geschrieben 27. Februar 2005 Hmmm da war was falsch und nun isses noch dümmer :! Ich habe gemerkt, dass < und > als < und > angezeigt wurden. Nun hab ich daraus mal < und > gemacht und nun sind die Links garnicht mehr da, da es halt XML ist und es aussieht wie ein normales Element. ----------------------------------------------------------------------- Zu stylen ist eine einfache XML Datei mit RSS 2.0 Format: <?xml version="1.0"?> <?xml-stylesheet href="./rss2.xsl" type="text/xsl"?> <rss version="2.0"> <channel> <title>Liftoff News</title> <link>http://liftoff.msfc.nasa.gov14.02.2005</link> <description>Liftoff to Space Exploration.</description> <language>en-us</language> <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate> <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <generator>Weblog Editor 2.0</generator> <managingEditor>editor@example.com</managingEditor> <webMaster>webmaster@example.com</webMaster> <item> <title>Star City</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link> <description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description> <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid> </item> <item> <description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.</description> <pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid> </item> <item> <title>The Engine That Does More</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link> <description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.</description> <pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid> </item> <item> <title>Astronauts' Dirty Laundry</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link> <description>Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.</description> <pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid> </item> </channel> </rss> und hier mal die rss2.xsl <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" method="html" media-type="text/html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" /> <xsl:output method="html" /> <xsl:template match="/rss/channel"> <html> <head> <title><xsl:value-of select="title" /></title> <link rel="stylesheet" type="text/css" href="rss.css" /> </head> <body> <xsl:for-each select="item"> <xsl:sort select="title" /> <div class="item"> <xsl:choose> <xsl:when test="title!=''"> <xsl:value-of select="title" /> </xsl:when> <xsl:otherwise> <i><NULL></i> </xsl:otherwise> </xsl:choose> <span class="pubDate">___(<xsl:value-of select="pubDate" />)</span> <div class="descr"> <xsl:value-of select="description" /><br /> <xsl:if test="link!=''"> <br /> <b>Link:</b><xsl:value-of select="link" /><br /> </xsl:if> <xsl:if test="guid!=''"> <xsl:choose> <xsl:when test="link!=''"> <b>GUID:</b><xsl:value-of select="guid" /><br /> </xsl:when> <xsl:otherwise> <br /> <b>GUID:</b><xsl:value-of select="guid" /><br /> </xsl:otherwise> </xsl:choose> </xsl:if> </div> </div> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> Damit es besser aussieht hier auch mal die rss.css: body { background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: Courier New; font-size: 9.5pt; } div.item { width: 50%; background-color: rgb(240, 240, 240); border: 1px solid rgb(0, 0, 0); padding: 0.5em; margin: 0 auto 1em; font-weight: bold; } div.descr { background-color: rgb(250, 250, 250); border: 1px solid rgb(100, 100, 100); padding: 0.2em; margin: 0.2em 0 0.2em 0; font-weight: normal; } span.pubDate { font-weight: normal; font-size: 8pt; font-style: italic; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 27. Februar 2005 Teilen Geschrieben 27. Februar 2005 und wenn du den Thread den ich oben gepostet hätte gelesen hättest, dann hättest du die Lösung schon längst.... disable-output-escaping="yes" dann werden deine "<" und ">" nicht mehr in "<" bzw ">" umgewandelt... Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 27. Februar 2005 Autor Teilen Geschrieben 27. Februar 2005 Und wenn ich so mach, dann geht garnichts mehr, ausser ich mach was falsch. Hier mal die neue XSL Datei: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" method="html" media-type="text/html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" /> <!-- <xsl:output method="html" /> --> <xsl:template match="/rss/channel"> <html> <head> <title><xsl:value-of select="title" /></title> <link rel="stylesheet" type="text/css" href="rss.css" /> </head> <body> <xsl:for-each select="item"> <xsl:sort select="title" /> <div class="item"> <xsl:choose> <xsl:when test="title!=''"> <xsl:value-of select="title" /> </xsl:when> <xsl:otherwise> <i><NULL></i> </xsl:otherwise> </xsl:choose> <span class="pubDate">___(<xsl:value-of select="pubDate" />)</span> <div class="descr"> <xsl:text disable-output-escaping="yes"> <!-- ANFANG NEU --> <xsl:value-of select="description" /><br /> </xsl:text> <!-- ENDE NEU --> <xsl:if test="link!=''"> <br /> <b>Link:</b><xsl:value-of select="link" /><br /> </xsl:if> <xsl:if test="guid!=''"> <xsl:choose> <xsl:when test="link!=''"> <b>GUID:</b><xsl:value-of select="guid" /><br /> </xsl:when> <xsl:otherwise> <br /> <b>GUID:</b><xsl:value-of select="guid" /><br /> </xsl:otherwise> </xsl:choose> </xsl:if> </div> </div> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> Ich bekomme lediglich: Error loading stylesheet: Parsing an XSLT stylesheet failed. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 27. Februar 2005 Teilen Geschrieben 27. Februar 2005 hast du nicht gesagt das problem ist bei den links?! <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" method="html" media-type="text/html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" /> <!-- <xsl:output method="html" /> --> <xsl:template match="/rss/channel"> <html> <head> <title><xsl:value-of select="title" /></title> <link rel="stylesheet" type="text/css" href="rss.css" /> </head> <body> <xsl:for-each select="item"> <xsl:sort select="title" /> <div class="item"> <xsl:choose> <xsl:when test="title!=''"> <xsl:value-of select="title" /> </xsl:when> <xsl:otherwise> <i><NULL></i> </xsl:otherwise> </xsl:choose> <span class="pubDate">___(<xsl:value-of select="pubDate" />)</span> <div class="descr"> <xsl:text> <xsl:value-of select="description" /><br /> </xsl:text> <xsl:if test="link!=''"> <br /> <b>Link:</b><xsl:value-of select="link" disable-output-escaping="yes"/><br /> </xsl:if> <xsl:if test="guid!=''"> <xsl:choose> <xsl:when test="link!=''"> <b>GUID:</b><xsl:value-of select="guid" disable-output-escaping="yes"/><br /> </xsl:when> <xsl:otherwise> <br /> <b>GUID:</b><xsl:value-of select="guid" disable-output-escaping="yes"/><br /> </xsl:otherwise> </xsl:choose> </xsl:if> </div> </div> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> ausserdem würde ich hier unten das so schreiben. Hat aber nichts mit dem aktuellen Problem zu tun anstatt: <xsl:choose> <xsl:when test="link!=''"> <b>GUID:</b><xsl:value-of select="guid" disable-output-escaping="yes"/><br /> </xsl:when> <xsl:otherwise> <br /> <b>GUID:</b><xsl:value-of select="guid" disable-output-escaping="yes"/><br /> </xsl:otherwise> </xsl:choose> so: <xsl:if test="guid!=''"> <xsl:if test="link==''"> <br /> </xsl:if> <b>GUID:</b><xsl:value-of select="guid" disable-output-escaping="yes"/><br /> </xsl:if> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 1. März 2005 Autor Teilen Geschrieben 1. März 2005 Also nochmal ganz von vorne... Ich habe, wie du bereits gesehen haben solltest, News (als RSS-Feed) in einer XML Datei (RSS 2.0 Format) und in der Beschreibung (<description>...</description>) sind bei mir Links in so einem Format: <a href="http://www.moep.de">Wong</a> Nun werden diese nicht angezeigt, da diese als Element erkannt werden. Ich möchte jedoch dass diese Teile als normales Link, wie es bei HTML auch so ist, angezeigt werden. Ich hoffe es ist jetzt ein wenig klarer geworden... Bei GUID, Link etc. ists mir erstmal egal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 2. März 2005 Teilen Geschrieben 2. März 2005 dann eben so: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" method="html" media-type="text/html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" /> <!-- <xsl:output method="html" /> --> <xsl:template match="/rss/channel"> <html> <head> <title><xsl:value-of select="title" /></title> <link rel="stylesheet" type="text/css" href="rss.css" /> </head> <body> <xsl:for-each select="item"> <xsl:sort select="title" /> <div class="item"> <xsl:choose> <xsl:when test="title!=''"> <xsl:value-of select="title" /> </xsl:when> <xsl:otherwise> <i><NULL></i> </xsl:otherwise> </xsl:choose> <span class="pubDate">___(<xsl:value-of select="pubDate" />)</span> <div class="descr"> <xsl:text> <xsl:value-of select="description" disable-output-escaping="yes"/><br /> </xsl:text> <xsl:if test="link!=''"> <br /> <b>Link:</b><xsl:value-of select="link"/><br /> </xsl:if> <xsl:if test="guid!=''"> <xsl:choose> <xsl:when test="link!=''"> <b>GUID:</b><xsl:value-of select="guid"/><br /> </xsl:when> <xsl:otherwise> <br /> <b>GUID:</b><xsl:value-of select="guid"/><br /> </xsl:otherwise> </xsl:choose> </xsl:if> </div> </div> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 4. März 2005 Autor Teilen Geschrieben 4. März 2005 Ja so "transferieren" kann ich das auch, aber dann bekomme ich weiterhin nichts angezeigt. Das ist irgendwie komisch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 4. März 2005 Teilen Geschrieben 4. März 2005 irgendwie ist mir immernoch nicht klar was genau aktuell rauskommt und was rauskommen soll..... Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 5. März 2005 Autor Teilen Geschrieben 5. März 2005 Also... Der Eintrag in meiner XML Datei sieht wie folgt aus: Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st. Wenn ich dies nun normal per XSL style etc. siehts am Ende so aus: Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a on Saturday, May 31st. Aber es soll so aussehen: Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a partial eclipse of the Sun on Saturday, May 31st. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.