#23631 [Opn]: xml_set_character_data_handler function called multiple times on one element
| From: | mrowe at pointsystems dot com | Date: | Wed, 14 May 2003 21:11:09 +0000 |
| Subject: | #23631 [Opn]: xml_set_character_data_handler function called multiple times on one element | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-39668@lists.php.net to get a copy of this message | ||
ID: 23631
User updated by: mrowe at pointsystems dot com
Reported By: mrowe at pointsystems dot com
Status: Open
Bug Type: XML related
Operating System: Win2k/RedHat Linux
PHP Version: 4.3.1
New Comment:
In the second paragraph, I should have stated:
"When I parse some elements, the "character data handler" may get
called multiple times for a single XML element."
THANKS!
Previous Comments:
------------------------------------------------------------------------
[2003-05-14 16:08:50] mrowe at pointsystems dot com
Hi there,
This may be a documentation issue, or an undocumented "feature."
When I parse some elements, the "character data handler" may get called
multiple times.
Example:
// start code //
$xml = '<URL>http://www.php.net?a=1&b=2&c=3</URL>';
echo "xml = " . $xml . "\n\n";
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
function startElement($parser, $tag, $attributes){ }
function endElement($parser, $tag){ }
function characterData($parser, $cdata){
if (!trim($cdata)) return;
echo "data = " . $cdata . "\n";
}
if (!xml_parse($xml_parser, $xml, true)){
echo "not parsed";
}
// end code //
The results are:
data = http://slashdot.org?a=1
data = &
data = b=2
data = &
data = c=3
I'm expecting:
data = http://www.php.net?a=1&b=2&c=3
The online docs state "The second parameter, data, contains the
character data as a string." However, in each case, "data" is only
PART of the character data.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=23631&edit=1