Code:
<?php
/*
PHP code to read and process the links.xml file
Currently displays each link as an unordered list
*/
$g_elem = "";
$cn=0;
$dateiname="company";
$filename="";
$datei;
function startElemHandler($parser, $name, $attribs) {
if (strcasecmp($name, "company") == 0) {
global $g_elem;
global $dateiname;
global $datei;
global $cn;
global $file;
$cn= $cn + 1;
$filename=$dateiname.$cn.".xml";
$datei = fopen($filename, "w");
$g_elem = $name;
echo "<company>\n";
fwrite($datei, "<company>\n");
}
if (strcasecmp($name, "name") == 0) {
global $g_elem;
global $datei;
$g_elem = $name;
echo "<name>\n";
fwrite($datei, "<name>\n");
}
if (strcasecmp($name, "product") == 0) {
global $g_elem;
global $datei;
$g_elem = $name;
echo "<product>\n";
fwrite($datei, "<product>\n");
}
if (strcasecmp($name, "element") == 0) {
global $g_elem;
global $datei;
$g_elem = $name;
echo "<element>";
fwrite($datei, "<element>");
}
}
function textData( $parser, $text )
{
global $g_elem;
global $datei;
if($g_elem == "element")
{
echo "$text";
fwrite($datei, $text);
}
if($g_elem == "name")
{
echo "$text";
fwrite($datei, $text);
}
}
function endElemHandler($parser, $name) {
if (strcasecmp($name, "company") == 0) {
global $datei;
echo "</company>";
fwrite($datei, "</company>\n");
//fclose($datei);
}
if (strcasecmp($name, "name") == 0) {
global $datei;
echo "</name>";
fwrite($datei, "</name>");
}
if (strcasecmp($name, "product") == 0) {
global $datei;
echo "</product>";
fwrite($datei, "</product>");
}
if (strcasecmp($name, "element") == 0) {
global $datei;
echo "</element>";
fwrite($datei, "</element>");
}
}
/* create the parser */
$parser = xml_parser_create();
xml_set_element_handler($parser, startElemHandler, endElemHandler);
xml_set_character_data_handler( $parser, textData );
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
// read the contents of the links file
$strXML = implode("",file('company.xml'));
// output each link
xml_parse($parser, $strXML);
// clean up - we're done
xml_parser_free($parser);
?>
Helmut Hagemann