[Cialug] xml
ralph
cialug@cialug.org
Sun, 21 Nov 2004 13:50:28 -0600
I've gotten the following error message:
Call to undefined function: xml_parser_create() in
*/home/ralph/public_html/xml9/script_09_06.php* on line *58*
The code is as follows:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XML Parser</title>
</head>
<body>
<pre>
<?php # parse.php (second version)
// This script will parse an XML file, which it takes as an argument.
// Define some constants to represent the greater than and less than symbols.
define ('LT', '<font color="blue"><</font>');
define ('GT', '<font color="blue">></font>');
// Define the functions required for handling the different pieces.
function handle_open_element ($p, $element, $attributes) {
$element = strtolower($element);
switch ($element) {
case 'cover_image':
$image = @getimagesize ($attributes['FILENAME']);
echo "<img src=\"{$attributes['FILENAME']}\" $image[3] border=\"0\"><br />\n";
break;
case 'song':
echo ' ' . LT . '<font color="red">' . $element . '</font>';
foreach ($attributes as $key => $value) {
echo ' <font color="green">' . strtolower($key) . '="' . $value . '"</font>';
}
echo GT;
break;
case 'collection':
echo LT . '<font color="red">' . $element . '</font>' . GT . '<br />';
break;
case 'album':
echo LT . '<font color="red">' . $element . '</font>' . GT . '<br />';
break;
default:
echo ' ' . LT . '<font color="red">' . $element . '</font>' . GT;
break;
}
}
function handle_close_element ($p, $element) {
$element = strtolower($element);
if ($element != 'cover_image') {
echo LT . '<font color="red">/' . $element . '</font>' . GT . '<br />';
}
}
function handle_character_data ($p, $cdata) {
echo "<b>$cdata</b>";
}
// End of the functions.
// Create the parser and set the handling functions.
$p = xml_parser_create();
xml_set_element_handler ($p, 'handle_open_element', 'handle_close_element');
xml_set_character_data_handler ($p, 'handle_character_data');
// Read the file.
$fp = @fopen ($file, 'r') or die ("Could not open a file called: $file");
while ($data = fread ($fp, filesize($file))) {
if (!xml_parse ($p, $data, feof($fp))) {
printf("An XML error occurred on line %d: %s.", xml_get_current_line_number($p), xml_error_string(xml_get_error_code($p)));
}
}
// Free up the parser.
xml_parser_free($p);
?>
</pre>
</body>
</html>
I've googled all over the place to find why Mandrake 10 doesn't support xml with PHP and can't seem to find the answer.
Could someone suggest an answer?
Thanks