ID:               28207
 Comment by:       joern_h at gmx dot net
 Reported By:      bart at mediawave dot nl
 Status:           Open
 Bug Type:         XML related
 Operating System: Windows 2000
 PHP Version:      5.0.0RC2
 New Comment:

It seems that entity refs do not get expanded when there is a default
handler registered. Instead the default handler gets called with the
name of the entity. Surprisingly this behavior is the same in PHP4 and
PHP5 (tested with latest snapshots).


Previous Comments:
------------------------------------------------------------------------

[2005-02-21 21:32:35] bart at mediawave dot nl

Unfortunately still no DTD. 

Also, I believe the entities aren't being translated correctly. In the
DTD &plainEntity; is defined like: <!ENTITY plainEntity "FOO entity">
This means that all occurrences of &plainEntity; need to be transformed
to "FOO entity". (You can check this by opening xmltest.xml in Firefox)

Expected result: (Modified)
----------------

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<CHAPTER>
 <TITLE>Title FOO entity</TITLE>
 <PARA>
  <INFORMALTABLE>
   <TGROUP COLS="3">
    <TBODY>
     <ROW><ENTRY>a1</ENTRY><ENTRY
MOREROWS="1">b1</ENTRY><ENTRY>c1</ENTRY></ROW>
     <ROW><ENTRY>a2</ENTRY><ENTRY>c2</ENTRY></ROW>
     <ROW><ENTRY>a3</ENTRY><ENTRY>b3</ENTRY><ENTRY>c3</ENTRY></ROW>
    </TBODY>
   </TGROUP>
  </INFORMALTABLE>
 </PARA>
 <?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<FOO>
   <ELEMENT ATTRIB="value"></ELEMENT>
   test entity
   This is some more PHP code being executed.
</FOO>
 <SECTION ID="about">
  <TITLE>About this Document</TITLE>
  <PARA>
   <!-- this is a comment -->
   Hi!  This is PHP version 4.3.6
  </PARA>
 </SECTION>
</CHAPTER>

parse complete


Actual result:
--------------
<CHAPTER>
 <TITLE>Title &plainEntity;</TITLE>
 <PARA>
  <INFORMALTABLE>
   <TGROUP COLS="3">
    <TBODY>
     <ROW><ENTRY>a1</ENTRY><ENTRY
MOREROWS="1">b1</ENTRY><ENTRY>c1</ENTRY></ROW>
     <ROW><ENTRY>a2</ENTRY><ENTRY>c2</ENTRY></ROW>
     <ROW><ENTRY>a3</ENTRY><ENTRY>b3</ENTRY><ENTRY>c3</ENTRY></ROW>
    </TBODY>
   </TGROUP>
  </INFORMALTABLE>
 </PARA>
 <FOO>
   <ELEMENT ATTRIB="value"></ELEMENT>
   &testEnt;
   
</FOO>
 <SECTION ID="about">
  <TITLE>About this Document</TITLE>
  <PARA>
   <!-- this is a comment -->
   Hi!  This is PHP version 5.1.0-dev
  </PARA>
 </SECTION>
</CHAPTER>

parse complete

---------------

I had another problem with 5.1 and IIS. (I was unable to run PHP files
in subdirectories) This is fixed now! :)

------------------------------------------------------------------------

[2005-02-21 20:14:04] [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



------------------------------------------------------------------------

[2004-04-28 17:18:12] bart at mediawave dot nl

Description:
------------
The stream-oriented XML parser (formerly Expat) produces different
output in PHP 5 than it did in PHP 4. I'm unable to read the 

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>

section of the XML document with PHP 5.

Reproduce code:
---------------
The code under "Example 3. External Entity Example" at
http://www.php.net/manual/en/ref.xml.php

Expected result:
----------------
<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<CHAPTER>
 <TITLE>Title &plainEntity;</TITLE>
 <PARA>
  <INFORMALTABLE>
   <TGROUP COLS="3">
    <TBODY>
     <ROW><ENTRY>a1</ENTRY><ENTRY
MOREROWS="1">b1</ENTRY><ENTRY>c1</ENTRY></ROW>
     <ROW><ENTRY>a2</ENTRY><ENTRY>c2</ENTRY></ROW>
     <ROW><ENTRY>a3</ENTRY><ENTRY>b3</ENTRY><ENTRY>c3</ENTRY></ROW>
    </TBODY>
   </TGROUP>
  </INFORMALTABLE>
 </PARA>
 <?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<FOO>
   <ELEMENT ATTRIB="value"></ELEMENT>
   &testEnt;
   This is some more PHP code being executed.
</FOO>
 <SECTION ID="about">
  <TITLE>About this Document</TITLE>
  <PARA>
   <!-- this is a comment -->
   Hi!  This is PHP version 4.3.6
  </PARA>
 </SECTION>
</CHAPTER>

parse complete

Actual result:
--------------
&plainEntity;<CHAPTER>
 <TITLE>Title &plainEntity;</TITLE>
 <PARA>
  <INFORMALTABLE>
   <TGROUP COLS="3">
    <TBODY>
     <ROW><ENTRY>a1</ENTRY><ENTRY
MOREROWS="1">b1</ENTRY><ENTRY>c1</ENTRY></ROW>
     <ROW><ENTRY>a2</ENTRY><ENTRY>c2</ENTRY></ROW>
     <ROW><ENTRY>a3</ENTRY><ENTRY>b3</ENTRY><ENTRY>c3</ENTRY></ROW>
    </TBODY>
   </TGROUP>
  </INFORMALTABLE>
 </PARA>
 &systemEntity;
 <SECTION ID="about">
  <TITLE>About this Document</TITLE>
  <PARA>
   <-- this is a comment -->
   Hi!  This is PHP version 5.0.0RC2
  </PARA>
 </SECTION>
</CHAPTER>XML error: Undeclared entity warning at line 27


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28207&edit=1

Reply via email to