Ich habe eine einzelne XML-Parsing-Funktion, die ich mehrmals aufrufen möchte, da ich nur ein wenig Daten ausstreifen und weitermachen muss. Hier"Schwerwiegender Fehler: kann nicht neu deklarieren" bei der Wiederverwendung von XML-Parsing-Code
ist die Funktion:
//Parse Product ID from Product Sides
function getProductSpecs($xml,$type) {
// Setup arrary
global $productspecs;
global $count;
$count = 0;
global $type_check;
$type_check = $type;
// Parse the XML
// Create the parser
if (! ($xmlparser = xml_parser_create()))
{
die ("Cannot create name list parser");
}
// Start tag function
function first($parser, $name, $attribs) {
global $trigger;
if ($name == "PRODUCTSIDEID") {
$trigger = 1;
} elseif ($name == "PRODUCTID") {
$trigger = 1;
}
}
// data handler function
function xml($parser, $data) {
global $trigger;
global $productspecs;
global $count;
global $type_check;
if ($trigger == 1){
if ($type_check == "sideid") {
$productspecs[$count]=$data;
$count = $count + 1;
} elseif ($type_check == "productid") {
$productspecs[$count]=$data;
$count = $count + 1;
}
$trigger = 0;
}
}
// Call the handler functions
xml_set_element_handler($xmlparser, "first", "");
// Call the data handler
xml_set_character_data_handler($xmlparser, "xml");
// Parse the XML data
xml_parse($xmlparser,$xml);
// Clear parser
xml_parser_free($xmlparser);
//Return the array
return $productspecs;
}
Mein Problem entsteht, wenn diese aufgerufen wird:
xml_set_element_handler($xmlparser, "first", "");
ich den neu deklarieren Fehler erhalten auf:
function first($parser, $name, $attribs) {
Die Funktion wird nur angezeigt, die Einmal und ich nehme an, das Problem tritt bei dem Anruf auf, aber gibt es einen Weg um dies, so muss ich nicht du so viel Code machen. Ich werde das mehrmals durchlaufen müssen.
Danke.
Sie für die Antwort danken. Ich nahm an, dass es etwas in diesem Sinne war, ich hatte meinen Kopf nicht darum herumgelegt. – techguytom