[xml] character data
| From: | Decapode Azur | Date: | Fri, 10 Oct 2003 20:26:01 +0000 |
| Subject: | [xml] character data | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-165786@lists.php.net to get a copy of this message | ||
I do not understand why this line does not work :
$info[$element] = $content;
but yet this works: echo $content;
why? what is the trick?
--
$xml_comment_file = basename($svg_file, '.svg.xml') .'.info.xml';
if (file_exists($xml_comment_file)) {
$file = $xml_comment_file;
$info = array();
$element = null;
function startElement($parser, $name, $attrs) {
global $element;
$element = $name;
}
function endElement($parser, $name) {
print "";
}
function characterData($parser, $content) {
global $info;
global $element;
$info[$element] = $content;
//$info[$element] = sprintf("%s", $content);
}
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, FALSE);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, 'r')))
die("could not open XML input\n");
while ($data = fread($fp, 4096))
if (!xml_parse($xml_parser, $data, feof($fp)))
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
xml_parser_free($xml_parser);
print_r($info);
}
/*
# the output is without $content :
Array
(
[info] =>
[file] =>
[orig-file] =>
[orig-author] =>
[bitmap-src] =>
[orig-date] =>
[svg-date] =>
)
*/