ID:               16193
 Comment by:       southen-antispam- at pipeline dot com
 Reported By:      kdesormeaux at atre dot net
 Status:           Closed
 Bug Type:         XSLT related
 Operating System: windows2000/linux...
 PHP Version:      4.3.0-dev
 New Comment:

Ok well I am getting something like this with the following code, and
I'm running Redhat9 with PHP 4.3.4.  My error message is

Warning: Sablotron error on line 1: XML parser error 3: no element
found in
/home/httpd/vhosts/noctambus.com/httpdocs/reviews/xml/standardbrowser.php
on line 85



My code is:



   /* transform method */ 



   function transform() { 



       $arguments = array(

           '/_xml' => $this->xml,

           '/_xsl' => $this->xsl

       );



       $this->setOutput( 

       xslt_process($this->processor, 'arg:/_xml', 'arg:/_xsl', NULL,

$arguments)

       );



      $this->setError($err); 

   } 





Can someone suggest a workaround?

Thanks!


Previous Comments:
------------------------------------------------------------------------

[2003-05-24 08:23:47] drm-nospam- at -nospam-melp-dot-nl dot nospam

[PHP 4.2.2, Windows XP]

Here are my findings with the same bugs:



The documentation on xslt_set_base () states that you must provide an
file:// prefix with setting the base. It seems that you should provide
the same prefix when passing files to xslt_process ().



The following works fine with me, using the "Very important" example
from above with local xml and xslt files, named 'sample.xml' and
'sample.xsl' respectively:



<?php

# create XSLT processor

$xsltProcessor = xslt_create ();



# generate filebase from working directory

$fileBase      = 'file://' . getcwd () . '/';



# process the 'sample.xml' and 'sample.xsl' files

$result        = xslt_process (

   $xsltProcessor,

   $fileBase . 'sample.xml',

   $fileBase . 'sample.xsl'

);



# print the result

if ( $result ) {

   echo 'Success ...';

   echo '<pre>', "\n";

   echo htmlentities ( $result );

   echo '</pre>';

} else {

   echo 'Fail due to error: ' . xslt_error($xh);

}



# free the processor resource

xslt_free ( $xsltProcessor );

?>



Alternatively, you can use the xslt_set_base function to provide the
processor with an explicit working directory:

<?php

# create XSLT processor

$xsltProcessor = xslt_create ();



# generate filebase from working directory

$fileBase      = 'file://' . getcwd () . '/';



# point xslt process base to working directory

xslt_set_base ( $xsltProcessor, $fileBase );



# process the 'sample.xml' and 'sample.xsl' files

$result        = xslt_process (

   $xsltProcessor,

   'sample.xml',

   'sample.xsl'

);



# print the result

if ( $result ) {

   echo 'Success ...';

   echo '<pre>', "\n";

   echo htmlentities ( $result );

   echo '</pre>';

} else {

   echo 'Fail due to error: ' . xslt_error($xh);

}



# free the processor resource

xslt_free ( $xsltProcessor );

?>



---

Hope some people will profit from this, at least i found a working
solution :)

------------------------------------------------------------------------

[2002-06-28 22:15:34] [EMAIL PROTECTED]

This should be fixed now as the related files were reverted

back to the 4.2.1 level.



------------------------------------------------------------------------

[2002-06-28 21:47:18] [EMAIL PROTECTED]

this isn't critical.

------------------------------------------------------------------------

[2002-06-24 13:04:34] [EMAIL PROTECTED]

Changed title



Somehow two different bugs got into here... Let's name it after the
real bug... (or should i open a new one)

------------------------------------------------------------------------

[2002-06-13 05:48:26] [EMAIL PROTECTED]

The same problem here.



Code which works very fine under 4.2 just spits out:



Warning: Sablotron error on line 1: XML parser error 3: no element
found in xslt.php on line 62



BC-break? or a real bug?



chregu

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/16193

-- 
Edit this bug report at http://bugs.php.net/?id=16193&edit=1

Reply via email to