Browse Source

Format XSLT and pass parameters.

pull/126/head
Adam Vessey 13 years ago committed by Adam Vessey
parent
commit
d44aca62d1
  1. 10
      ObjectHelper.inc
  2. 42
      xsl/convertQDC.xsl

10
ObjectHelper.inc

@ -410,9 +410,17 @@ class ObjectHelper {
if (($xsl_path = "$path/xsl/convertQDC.xsl") &&
($xsl = DOMDocument::load($xsl_path)) &&
($ds = DOMDocument::loadXML($xmlstr))) {
$xslt_opts = array(
'BASEURL' => $base_url,
'PATH' => url($path, array('absolute' => TRUE)),
'baseUrl' => $base_url, //XXX: Deprecated; just here for legacy cases.
'path' => url($path, array('absolute' => TRUE)), //XXX: Deprecated; just here for legacy cases.
);
$transform = new XSLTProcessor();
$transform->importStylesheet($xsl);
return $transform->transformToXML($ds);
$transform->setParameter('', $xslt_opts);
$transformed = $transform->transformToDoc($ds);
return $transformed->saveHTML();
}
else {
$simplexml = new SimpleXMLElement($xmlstr);

42
xsl/convertQDC.xsl

@ -1,33 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:variable name="BASEURL">
<xsl:value-of select="$baseUrl"/>
</xsl:variable>
<xsl:variable name="PATH">
<xsl:value-of select="$path"/>
</xsl:variable>
<xsl:template match="/">
<!-- Old parameter names "$baseUrl" and "$path" are deprecated. Currently just used as defaults. -->
<xsl:param name="BASEURL" select="$baseUrl"/>
<xsl:param name="PATH" select="$path"/>
<div><table cellspacing="3" cellpadding="3"><tbody>
<tr><th colspan="3"><h3>MetaData</h3></th></tr>
<xsl:template match="/">
<div>
<table cellspacing="3" cellpadding="3">
<tbody>
<tr>
<th colspan="3"><h3>MetaData</h3></th>
</tr>
<xsl:for-each select="/*/*">
<xsl:variable name="FULLFIELD" select="name()"/>
<xsl:variable name="FIELD" select="local-name()"/>
<xsl:variable name="DATA" select="text()"/>
<xsl:if test="$DATA != ' '">
<tr><td><strong><xsl:value-of select="local-name()"/></strong></td><td><xsl:value-of select="text()"/>
<xsl:variable name="DATA" select="normalize-space(text())"/>
<xsl:if test="$DATA">
<tr>
<td><strong><xsl:value-of select="local-name()"/></strong></td>
<td><xsl:value-of select="$DATA"/>
<xsl:for-each select="*">
<div>
<xsl:value-of select="local-name()"/> = <xsl:value-of select="text()"/>
</div>
<div><xsl:value-of select="concat(local-name(), ' = ', text())"/></div>
</xsl:for-each>
</td></tr>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</tbody></table></div>
</tbody>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
Loading…
Cancel
Save