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);

?>

Ergebnis

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

<?php

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)!

 

Entwicklerbereich Weblication® CMS - © Scholl Communications AG