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