Package home | Report new bug | New search | Development Roadmap Status: Open | Feedback | All | Closed Since Version 1.10.12

Bug #1503 XML parsing fail on complex element
Submitted: 2004-05-26 07:30 UTC
From: pnagy at allianz dot hu Assigned: mansion
Status: Wont fix Package: Config
PHP Version: 4.3.5 OS: WinXP Prof.
Roadmaps: (Not assigned)    
Subscription  
Comments Add Comment Add patch


Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know! Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem : 47 - 6 = ?

 
 [2004-05-26 07:30 UTC] pnagy at allianz dot hu
Description: ------------ I'm using Config 1.10. In an XML-file containing complex-type elements the parser fail to create it right. The source xml looks like this: ------------- <lit>You can write some text here which will displayed in <strong>full width</strong>on the form. Text could contain fields <field name="bar" src="post" />, they will displayed as pure text. </lit> ------------- The error shows in all output, so I think it is in the parser method. Reproduce code: --------------- <?php require_once('Config.php'); // Config object $config = new Config(); $root =& $config->parseConfig('flowConfExample.xml', 'xml'); echo $root->toString('phparray', array('name' => 'conf')); require_once('Config/Container.php'); $out = $config->writeConfig ( 'output.ini', 'inifile', array('name' => 'conf') ); $out = $config->writeConfig ( 'output.apache.conf', 'apache', array('name' => 'conf') ); $out = $config->writeConfig ( 'output.generic.conf', 'genericconf', array('name' => 'conf') ); $out = $config->writeConfig ( 'output.xml.conf', 'xml', array('name' => 'conf') ); ?> Expected result: ---------------- $conf['flow']['page'][0]['section']['lit']['#'] = 'You can write some text here which will displayed in '; $conf['flow']['page'][0]['section']['lit']['#']['strong'] = 'full width'; $conf['flow']['page'][0]['section']['lit']['#'] = 'on the form. Text could contain fields'; $conf['flow']['page'][0]['section']['lit']['field']['@']['name'] = 'bar'; $conf['flow']['page'][0]['section']['lit']['field']['@']['src'] = 'post'; $conf['flow']['page'][0]['section']['lit']['#'] = ', they will displayed as pure text.'; Actual result: -------------- $conf['flow']['page'][0]['section']['lit']['strong'] = 'You can write some text here which will displayed in full width'; $conf['flow']['page'][0]['section']['lit']['field']['#'] = 'on the form. Text could contain fields'; $conf['flow']['page'][0]['section']['lit']['field']['@']['name'] = 'bar'; $conf['flow']['page'][0]['section']['lit']['field']['@']['src'] = 'post';

Comments

 [2004-06-04 10:04 UTC] bmansion at mamasam dot com
This does not look like a configuration. Config's purpose is to parse/edit/write configuration files. Configuration files are usually more simple than what you propose here. I suggest you rewrite your configuration by using htmlentities for < (<) and > (>) in your <lit> directive because it is what it is in the end.