У меня есть одна функция синтаксического анализа xml, которую я пытаюсь вызвать несколько раз, так как мне нужно всего лишь вырезать небольшие данные и продолжить.«Неустранимая ошибка: не удается переопределить» при повторном использовании кода анализа xml
Вот функция:
//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;
}
возникает Моя проблема, когда это называется:
xml_set_element_handler($xmlparser, "first", "");
Я получаю ошибку переобъявить на:
function first($parser, $name, $attribs) {
Функция появляется только один раз, и я предполагаю, что проблема возникает при вызове, но есть ли способ обойти это, поэтому мне не нужно так много кода. Мне придется проходить через это несколько раз.
Спасибо.
Спасибо за ответ. Я подумал, что это что-то такое, что я просто не обмотал голову. – techguytom