0
データを少しだけ取り除いて続行する必要があるため、複数回コールする単一の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) {
機能のみ表示されます一度、私は問題がコールで発生すると仮定していますが、これを回避する方法があるので、私はduにする必要はありません多くのコードをplicateします。私はこれを何度も繰り返す必要があります。
ありがとうございました。
は、応答をありがとうございました。私はそれが私の頭の中を包んでいなかったというその効果に何かであると思った。 – techguytom