On Tue, 31 Aug 2004 00:27:25 -0400, David Numan <[EMAIL PROTECTED]> wrote: > Hi > > I'm working on a project using PHP5 and I'm using the DOM extension > quite heavily. I need to be able to store various character entities > such as $nbsp; and é Note: this is for a custom XML document, not > standard (X)HTML. > > When I load my XML string into my domDocument I've been trying > variations of $doctype1 and $doctype2 below. Here is my code: > > $doctype1 = <<<EODT > <!DOCTYPE page [ > <!ENTITY % ISOlat1 PUBLIC "-//W3C//ENTITIES Latin1 for XHTML//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"> > %ISOlat1; > <!ENTITY % ISOsymbol PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"> > %ISOsymbol; > <!ENTITY % ISOspecial PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"> > %ISOspecial; > ]> > EODT; > > $doctype2 = '<!DOCTYPE page PUBLIC "-" > "http://gv.ca/dtd/character-entities.dtd">'; > > $xml = '<?xml version="1.0" encoding="UTF-8"?>'.$doctype1. > '<page> </page>'; > $dom = new domDocument(); > $dom->loadXML($xml); > echo $dom->saveXML(); > > The above code works as-is and the is present in the huge output. > However, when I change it to use $doctype2 the is no longer there > and returns the warning "Entity 'nbsp' not defined in Entity, line 1". > Of course the $doctype2 string is the one I need. > > What am I doing wrong? Why isn't it loading the external entities? Is > there some other way of doing this that I somehow missed? I tested the > exact same xml code using "xmllint -format -loaddtd file.xml" and it > worked fine.
try if it works with $dom->resolveExternals = true: before $dom->load() not tested, but I assume it has something to do with not loading external entities chregu > > Tested on Gentoo with PHP 5.0.0 and 5.0.1 with libxml 2.6.11. > > Any ideas would be appreciated. > Thanks, > -- > David Numan <[EMAIL PROTECTED]> > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich phone +41 1 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71 http://www.bitflux.ch | [EMAIL PROTECTED] | gnupg-keyid 0x5CE1DECB -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php