ID: 31994
Comment by: cbdbs at yahoo dot com
Reported By: misnet at hotmail dot com
Status: Open
Bug Type: XSLT related
Operating System: windows 2003 server
PHP Version: 5CVS-2005-02-25
New Comment:
$doc = new DOMDocument('1.0','ISO-8859-1');
// we want a nice output
$doc->formatOutput = true;
$familias = $doc->appendChild(new DOMElement('familias'));
while ($fam_datos = mysql_fetch_array($data)){
$familia = $familias->appendChild(new DOMElement('familia'));
$familia->appendChild(new DOMElement('Apellidos',
$fam_datos['Familia']));
$familia->appendChild(new DOMElement('Representante',
$fam_datos['Apellidos']));
$familia->appendChild(new DOMElement('Nombre',
$fam_datos['Nombres']));
$familia->appendChild(new DOMElement('Edad',
$fam_datos['Edad']));
$familia->appendChild(new DOMElement('Salud', 'Sano'));
}
header('Content-Type: text/xml');
$documento = $doc->saveXML();
echo $documento;
OUTPUT
<b>Warning</b>: output conversion failed due to conv error in
<b>c:\home\prueba\www\grid\xml.php</b>...
Previous Comments:
------------------------------------------------------------------------
[2005-04-07 11:43:19] emil at wayers dot com
This error/problem resolves around your used encoding type. when using
encoding="GB2312" in php5.0.4/cvs-current the engine will issue a
warning at the exact point a charcter has been found which isn't
suitable for this encoding context.
My script, which is similar to the given script, issued the exact same
warning on a character (�) when using the standard iso encoding. After
I changed my encoding to UTF-8 all reported problems where gone.
I'm sure this isn't a real engine f*ck up but just a misguided error
message ;) But if this workaround doesn't work for you try changing
your Article->ComeFrom & Article->Contents & Article->AddTime content
into htmlentities.
good luck!
------------------------------------------------------------------------
[2005-03-28 04:43:12] misnet at hotmail dot com
What about the bug? Can it not be resolved?
------------------------------------------------------------------------
[2005-02-26 06:41:17] misnet at hotmail dot com
Not be resolved! The same result.
------------------------------------------------------------------------
[2005-02-25 14:38:28] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2005-02-16 10:06:47] misnet at hotmail dot com
Description:
------------
a.xml
=============================================
<?xml version="1.0" encoding="GB2312"?>
<Article>
<Title>test</Title>
<Author>ehero</Author>
<ComeFrom>�й�</ComeFrom>
<HtmlUrl>a.html</HtmlUrl>
<CatalogId>2</CatalogId>
<Contents><![CDATA[����]]></Contents>
<AddTime>2005��</AddTime>
<UpdateTime></UpdateTime>
<Hits>3</Hits>
<ServerFile></ServerFile>
<LocalFile></LocalFile>
<EncodeLocalFile></EncodeLocalFile>
<PageIndex>0</PageIndex>
<TotalPageNum>1</TotalPageNum>
<PageUrl>a.shtml</PageUrl>
</Article>
=============================================
cms.xsl:
=============================================
<?xml version="1.0" encoding="GB2312" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl" xsl:extension-element-prefixes="php">
<xsl:output method="html" encoding="GB2312" indent="yes"/>
<xsl:template match="/">
<html>
.....
=============================================
s.php:
=============================================
<?php
$xml = new DOMDocument("1.0","GB2312");
$xml->load("a.xml");
$xsl = new DOMDocument("1.0","GB2312");
$xsl->load("cms.xsl");
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
$proc->registerPHPFunctions();
$d = $proc->transformToUri($xml,"s.xml");
?>
=============================================
When I run s.php, it will be wrong!.Below is the exception messages.
Warning: output conversion failed due to conv error in
D:\myphp\yibo\t.php on line 9
Warning: Bytes: 0xB5 0xEB 0x2D 0x3C in D:\myphp\yibo\t.php on line 9
I have tested $xml->load("a.xml") and $xsl->load("cms.xsl"),they are
right. I can get $xml->saveXML() and $xsl->saveXML().
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31994&edit=1