wXSLT::processString

Führt eine XSLT-Transformation durch

Funktionsaufruf

String processString(String xmlString, String xsltString, Array parameters = array())

Parameter

xmlString
Zu transformierende XML-Daten als String
xsltString
XSLT-Template als String
parameters
XSLT-Parameter
options
wsl => [|0|1]
Falls WSL ausgeführt werden soll

Beispiel: Beispiel 1: Liest ein RSS-Feed ein und gibt diesen aus

Quelltext

<?php

$rssString
= wSocket::getUrl('https://news.weblication.de/news/newsWeblication.php');

$xsltString = wReadWrite::readFile($_SERVER['DOCUMENT_ROOT'].'/devGlobal/wGlobal/layout/templates/rss.wDocument.php');

print
wXSLT::processString($rssString, $xsltString);


?>

Beispiel: Beispiel 1.2: Liest ein RSS-Feed ein und gibt diesen über XSLT formatiert aus

Quelltext

<?php

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

// rss-Feed im XML-Format als String einlesen
$rssString = wSocket::getUrl('https://dev.weblication.de/dev/rss-feeds/dev-news.php');
// $rssString = wSocket::getUrl('http://www.welt.de/?service=Rss');

// XSLT-Stylesheet definieren
$xslString = '
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" encoding="UTF-8"/>

<xsl:template match="/">
<ul>
<xsl:for-each select="//item">
<li>
<a href="{link/text()}" target="_blank" title="{description/text()}"><xsl:value-of select="title/text()" /></a>
<small><xsl:value-of select="pubDate/text()"/></small>
</li>
</xsl:for-each>
</ul>
</xsl:template>

</xsl:stylesheet>
'
;

// XSL-Transformation durchführen
print wXSLT::processString($rssString, $xslString);

?>

Beispiel 2: Liest eine XML-Datei ein und greift auf einen übergegebenen Timestamp zu

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

$entriesString = wReadWrite::readFile($_SERVER['DOCUMENT_ROOT'].'/de/locomotion.wEntries.php');
$xsltString = wReadWrite::readFile($_SERVER['DOCUMENT_ROOT'].'/template.xsl');
$parameters = array('date' => date("d.m.Y, H:i:s"));

print
wXSLT::processString($entriesString, $xsltString, $parameters);

/* Inhalt der locomotion.wEntries.php:
<locomotion>
<entries>
<entry value="car">Auto</entry>
<entry value="train">Bahn</entry>
<entry value="airplane">Flugzeug</entry>
</entries>
</locomotion>
*/

Beispiel 2-1: XSL-Template template.xsl zu o.g. Beispiel 2

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" encoding="UTF-8"/>

  <xsl:param name="date" />
  
  <xsl:template match="/">
    <ul>
      <xsl:for-each select="//entry">
        <xsl:if test="position() &lt; 5">
          <li><xsl:value-of select="text()" /> (<xsl:value-of select="$date" />)</li>
        </xsl:if>
      </xsl:for-each>
    </ul>
  </xsl:template>  

</xsl:stylesheet>

Wichtige Hinweise

In XSL-Stylesheets, die Daten über wXSLT::processString transformieren, kann kein wsl:php bzw. PHP-Code verwendet werden! Arbeiten Sie hier mit php:functionString (siehe PHP in XSL-Stylesheets ausführen)!

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.