ThomasM: random.org via xsl

Beitrag lesen

Hallo memo,

Wenn ich mir den Quelltext mit Bordmitteln anzeigen lasse, stimmt es, was du sagt: plain!
Bin jetzt doch ein wenig ratlos ...

es wird nur der Zahlenwert selbst abgeholt, document() gibt ein Nodeset zurück, welches dann abgefragt werden kann. Eine XML-Rückgabe ist bei random.org offenbar nicht vorgesehen.

Eine Alternative wäre die Nutzung von unparsed-text() aus XSLT / XPath 2.0, was aber im Browser nicht funktioniert. Falls eine andere Sprache wie PHP auf dem eigenen Server verfügbar ist, dann erzeuge damit die Zufallszahl und liefere an die Transformation ein XML-Snippet zurück:

zufall.php:

<?php  
  header("Content-Type: application/xml; charset=UTF-8");  
  echo "<zahl>" . mt_rand(1,200) . "</zahl>";  
?>

test.xml:

<?xml version="1.0" encoding="UTF-8"?>  
<?xml-stylesheet href="test.xsl" type="text/xsl"?>  
<test/>

test.xsl:

<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
  <xsl:template match="test">  
    <out>Zufallszahl: <xsl:value-of select="document('http://localhost/zufall.php')/zahl"/>  
    </out>  
  </xsl:template>  
</xsl:stylesheet>

Offenbar spielt hier nur der IE mit. Insofern nochmal mit EXSLT beschäftigen oder die Transformation über JS laufen lassen.

Grüße,
Thomas