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 &eacute; 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>&nbsp;</page>';
> $dom = new domDocument();
> $dom->loadXML($xml);
> echo $dom->saveXML();
> 
> The above code works as-is and the &nbsp; is present in the huge output.
> However, when I change it to use $doctype2 the &nbsp; 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

Reply via email to