Hello,
I'm trying to use xslt_process with $arguments like in the third example in
the online documentation, but I'm not having any luck. I can run the same
.xml and .xsl using the simple examples, but I cannot when using the
$arguments example. I would really like to get this figured out, but I've
run into a brick wall and I can't seem to understand why it doesn't work.
I've pasted my .xml, .xsl and .php files below.
Thanks,
John
This does transform the xml and produce results:
-----------------------------------------------------------------------
<?php
// Create an XSLT processor
$xh = xslt_create();
xslt_set_base($xh, "file://D:/Inetpub/wwwroot/phpxml/");
// NEED TO FIGURE OUT HOW TO SPECIFY THE INPUT XML and XSL FILE LOCATIONS!!!
// Process the XML
$result = xslt_process($xh, 'test.XML', 'test.xsl');
if ($result){
// print "SUCCESS, book.xml was transformed by book.xsl into
result.xml";
// print "result.xml has the following contents\n<br/>\n";
// print "<pre>\n";
print $result;
// print "</pre>";
}
else {
print "Sorry, failure!";
print "<br/>";
echo xslt_error($xh);
print "<br/>";
echo xslt_errno($xh);
}
xslt_free($xh);
?>
-----------------------------------------------------------------------
This does not:
-----------------------------------------------------------------------
<?php
echo "one";
// Grab the XSL and XML files
$xsl = xmldoc(implode("",file("test.xsl")));
$xml = xmldoc(implode("",file("test.xml")));
// Set up the Arguments thingy
$args = array(
'/_xml'=>$xml,
'/_xsl'=>$xsl
);
// Create an XSLT processor
$xh = xslt_create();
// Process the XML
$result = xslt_process($xh, 'arg:/_xsl', 'arg:/_xml', null, $args);
//$result = xslt_process($xh, 'files\book.XML', 'files\book.xsl', NULL,
$args);
if ($result){
// print "SUCCESS, book.xml was transformed by book.xsl into
result.xml";
// print "result.xml has the following contents\n<br/>\n";
print "<h2> Yes! </h2>\n";
print "<pre>\n";
print $result;
print "</pre>";
}
else {
print "Sorry, failure!\n";
print "<br/>\n";
echo xslt_error($xh);
print "<br/>\n";
echo xslt_errno($xh);
}
xslt_free($xh);
?>
-----------------------------------------------------------------------
The XML File:
-----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<book>
<!-- Title of the book -->
<title>Professional Php Programming (Programmer to Programmer)</title>
<!-- Authors of the book -->
<text>This book has been authored by:</text>
<authors>
<author number="1">Sascha Schumann</author>
<author number="2">Harish Rawat</author>
<author number="3">Jesus M. Castagnetto</author>
<author number="4">Deepak T. Veliath</author>
</authors>
<!-- Image of the book -->
<text>A picture of the book's cover: </text>
<picture>http://images.amazon.com/images/P/1861002963.01.MZZZZZZZ.jpg</pictu
re>
<!-- Pricing info-->
<text>The pricing of the book is as follows:</text>
<prices>
<price>List price: $49.99</price>
<price>Our price: $39.99</price>
<price>You save: $10.00</price>
</prices>
<!-- Other misc info-->
<text>Here is some sundry info about the book:</text>
<bookinfo>
<type>Paperback</type>
<amazonrank>6,337</amazonrank>
<pages>909</pages>
<publisher>Wrox Press</publisher>
<isbn>1861002963</isbn>
<size>2.00 x 9.16 x 7.30</size>
<url>http://www.amazon.com/exec/obidos/ASIN/1861002963/o/qid=986194881/sr=8-
1/ref=aps_sr_b_1_1/107-4263716-8514955</url>
</bookinfo>
</book>
-----------------------------------------------------------------------
The XSL File:
-----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html><body>
<xsl:apply-templates/>
</body></html>
</xsl:template>
<!-- This is the title of the page -->
<xsl:template match="title">
<b><u>
<xsl:value-of select="."/>
</u></b>
</xsl:template>
<xsl:template match="text">
<p/> <b>
<xsl:value-of select="."/>
</b><br/>
</xsl:template>
<xsl:template match="authors">
<table>
<xsl:apply-templates/>
</table><br/>
</xsl:template>
<xsl:template match="author">
<tr>
<td>
<xsl:value-of select="@number"/>.
</td>
<td>
<xsl:value-of select="."/>
</td>
</tr>
</xsl:template>
<xsl:template match="prices">
<p/> <table>
<xsl:apply-templates/>
</table><p/>
</xsl:template>
<xsl:template match="price">
<tr>
<td>
<xsl:value-of select="."/>
</td>
</tr>
</xsl:template>
<xsl:template match="bookinfo">
<p/>
<xsl:apply-templates/>
<p/>
</xsl:template>
<xsl:template match="bookinfo/*">
<xsl:choose>
<xsl:when test="local-name(.)='type'">
<b>Type:</b>
</xsl:when>
<xsl:when test="local-name(.)='amazonrank'">
<b>Amazon rank:</b>
</xsl:when>
<xsl:when test="local-name(.)='pages'">
<b>Number of pages:</b>
</xsl:when>
<xsl:when test="local-name(.)='publisher'">
<b>Publisher:</b>
</xsl:when>
<xsl:when test="local-name(.)='isbn'">
<b>ISBN #:</b>
</xsl:when>
<xsl:when test="local-name(.)='size'">
<b>Dimensions in inches:</b>
</xsl:when>
<xsl:when test="local-name(.)='url'">
<b>More info from this link:</b>
</xsl:when>
</xsl:choose>
<xsl:value-of select="."/>
<br/>
</xsl:template>
</xsl:stylesheet>
-----------------------------------------------------------------------
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php