On Fri, 2010-10-22 at 12:03 -0400, Adam Richardson wrote:

> On Fri, Oct 22, 2010 at 11:47 AM, TR Shaw <ts...@oitc.com> wrote:
> 
> > Anyone have an idea how to work around this? I tried:
> >
> > define ('reg', '®');
> > define ('&reg;', '®');
> >
> > can't figure how to override the entity table.  Errors follw:
> >
> > Warning: simplexml_load_string():
> > o.cc/46/e53d68e007fd45c2fccb502f2e7ccad5.php?user_id=47&amp;sub_id=61862469&reg;
> > in checkifup.php on line 5119
> >
> > Warning: simplexml_load_string():
> >                                      ^ in checkifup.php on line 5119
> >
> > Warning: simplexml_load_string(): Entity: line 220: parser error : Entity
> > 'reg' not defined in checkifup.php on line 5119
> >
> > Warning: simplexml_load_string():
> > /office/e53d68e007fd45c2fccb502f2e7ccad5.php?user_id=47&amp;sub_id=89877485&reg;
> > in checkifup.php on line 5119
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
> Does doing a str_replace and changing it to the corresponding entity number
> (&#174;) before parsing with simple_xml work?
> 
> Here's a more robust function:
> http://www.sourcerally.net/Scripts/39-Convert-HTML-Entities-to-XML-Entities
> 
> Adam
> 



This isn't a PHP error, it's an error with your XML. The regular HTML
entities which you're used to such as &reg; and &copy; are not
recognised in XML without first being declared as entities. The entities
exist in HTML because just outputting those characters won't always work
in a web browser (*Internet Explorer* *cough* *cough*) whereas XML was
never meant to be displayed in a browser, but transformed and then
output to a browser (among many other things) through XSLT. If you use
the characters directly in your XML you should be fine with the parser,
although you may have to make sure your document is saved in utf-8, as
most of the entity characters are above the ascii range.

Thanks,
Ash
http://www.ashleysheridan.co.uk


Reply via email to