Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mi 30.03.2005 22:47
Titel
|
|
|
ich bin ein volltrottel und machs jetzt ganz anders...
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Do 31.03.2005 00:17
Titel
|
|
|
lol sry das war echt ein wenig doof^^ es *geht* aber nach ein paar hundert zeilen hatte ich echt keine lust mehr, man verrennt sich da einfach in zu viele unwägbarkeiten, wenn man das flexibel halten muss. also: (PHP5, das in 4 umzumodeln geht, ist aber frustig, weil man immer wieder die pfadangaben beim serverwechsel updaten muss => frag evtl deinen programmierer).
gib mir deine mail dann kann ich dir auch ne zip schicken.
seite1.xsl:
Code: | <?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head><title>Erste Seite</title></head>
<body>
<!-- Content -->
<ul>
<xsl:for-each select="Content/Produktgruppe">
<xsl:sort select="@Name" order="ascending" data-type="text"/>
<li>grp <xsl:value-of select="@ID"/>: <a href="index.php?grpId=$Gruppe">
<xsl:attribute name="href">index.php?grpId=<xsl:value-of select="@ID"/></xsl:attribute>
<xsl:value-of select="@Name"/></a></li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet> |
seite2.xsl:
Code: | <?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<html>
<head><title>Erste Seite</title></head>
<body>
<!-- Content -->
<ul>
<xsl:apply-templates />
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="Content/Produktgruppe">
<li>grp <xsl:value-of select="@ID"/>: <a>
<xsl:attribute name="href">javascript:history.back();</xsl:attribute>
<xsl:value-of select="@Name"/></a></li>
<ul>
<xsl:for-each select="Produkt">
<li><a><xsl:attribute name="href">index.php?grpId=<xsl:value-of select="../@ID"/>&artId=<xsl:value-of select="@ID"/></xsl:attribute>ArtId: <xsl:value-of select="@ID"/></a>
(Produkte können bei bed. ausgeblendet und nur der entspr. benötigte Textlink angezeit werden)</li>
<ul>
<xsl:for-each select="./*">
<li><xsl:value-of select="name(.)"/>: <xsl:value-of select="." /></li>
</xsl:for-each>
</ul>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet> |
seite3.xsl:
Code: | <?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<html>
<head><title>Erste Seite</title></head>
<body>
<!-- Content -->
<ul>
<xsl:apply-templates />
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="Content/Produktgruppe">
<li>grp <xsl:value-of select="@ID"/>: <a>
<xsl:attribute name="href">javascript:history.back();</xsl:attribute>
<xsl:value-of select="@Name"/></a><br/>Was sonst noch hier?</li>
<!--ul>
<xsl:for-each select="Produkt">
<li><a><xsl:attribute name="href">index.php?grpId=<xsl:value-of select="../@ID"/>&artId=<xsl:value-of select="@ID"/></xsl:attribute>ArtId: <xsl:value-of select="@ID"/></a>
(Produkte können bei bed. ausgeblendet und nur der entspr. benötigte Textlink angezeit werden)</li>
<ul>
<xsl:for-each select="./*">
<li><xsl:value-of select="name(.)"/>: <xsl:value-of select="." /></li>
</xsl:for-each>
</ul>
</xsl:for-each>
</ul-->
</xsl:template>
</xsl:stylesheet> |
index.php:
Code: | <?
function checkFiles() {
$grpId = $_GET["grpId"];
$artId = $_GET["artId"];
if ($artId) {
$xmlfile = "http://www.uk-consult.de/content/contentmanagement/content2xml.asp?num=18661&Produktgruppe={$grpId}&Produkt={$artId})";
$xslfile = "seite3.xsl";
$name = "{$artId}-{$grpId}-".time().".html";
}
elseif ($grpId) {
$xmlfile = "http://www.uk-consult.de/content/contentmanagement/content2xml.asp?num=18661&Produktgruppe={$grpId}";
$xslfile = "seite2.xsl";
$name = "{$grpId}-".time().".html";
}
else {
$xmlfile = "http://www.uk-consult.de/content/contentmanagement/content2xml.asp?num=18661";
$xslfile = "seite1.xsl";
$name = "index-".time().".html";
}
parse($xmlfile, $xslfile, $name);
}
function parse($xmlfile, $xslfile, $name) {
// PHP5 funktionen, PHP 4 oder andere Sprache bitte ergänzen
if (!file_exists($name)) {
// noch weitere cachefunktionen einbauen (zeitlimit)
$xsl = new DOMDocument;
$xsl->load($xslfile);
$xslt = new XSLTProcessor();
$xslt->importStylesheet($xsl);
$xml = new DOMDocument;
$xml->load($xmlfile);
$results = $xslt->transformToURI($xml, $name);
$results = $xslt->transformToXML($xml);
echo $results;
//$results = $xslt->transformToDoc($xml);
}
else {
$file = implode('', file($name));
echo $file;
}
}
checkfiles();
?> |
geht vielleicht noch besser, ist mein erstes mal mit xsl... wer weiß, warum der keine variablen im stylesheet parst?
Zuletzt bearbeitet von am Do 31.03.2005 00:26, insgesamt 4-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Kash
Threadersteller
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Do 31.03.2005 07:42
Titel
|
|
|
morgen XSchinkenX,
ich danke dir für die Mühe.
Ich werde sehen was ich damit nun alles anfangen kann.
Danke.
|
|
|
|
|
Kash
Threadersteller
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Do 31.03.2005 08:49
Titel
|
|
|
ähm... wo bekomme ich den XSLTProcessor her?
bekomme fehlermeldung das er das stylesheet nicht laden kann.
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Do 31.03.2005 09:13
Titel
|
|
|
Welche PHP Version benutzt du? PHP5 oder 4?
Das Skript läuft auf PHP 5 (LibXSL), PHP4 nutzt die Sablotron-Bibliothek, die mit Pfaden so ihre Probleme hat. Sie verwendet als Ausgangspunkt NICHT dein Webroot, sondern den Ordner des XSL-Parsers. Du musst dann xslt_set_base() verwenden, um den Ordner zu switchen.
Jedenfalls: Hast du die Fehlermeldung, ist der Prozessor mit installiert. Ansonsten würdest du ne Meldung bekommen, dass es die entspr. Funktionen nicht gibt.
|
|
|
|
|
|
|
|
Ähnliche Themen |
[solved]Einlesen und ausgeben einer TXT Datei.
XML mit Javascript parsen
xml laden und parsen in *.as
Parsen von datei php
[PHP]Problem bei Parsen vom XML-Daten
PHP -> XML Parsen - Pro Zeile jeweils 3 Ausgaben!
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|