есть такой парсер xml PHP: function startElement($parser, $name, $attrs) { if ($attrs["PRODUCT"] == 'blabla') { echo $attrs["PRICE"]; } } function endElement($parser, $name) { } function stringElement($parser, $desc) { echo $desc; } $file = "data.xml"; $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "stringElement"); if (!($fp = fopen($file, "r"))) { die("could not open XML input"); } while ($data = fgets($fp)) { if (!xml_parse($xml_parser, $data, feof($fp))) { echo "<br>XML Error: "; echo xml_error_string(xml_get_error_code($xml_parser)); echo " at line ".xml_get_current_line_number($xml_parser); break; } } xml_parser_free($xml_parser); вопрос как сделать так чтобы $desc из функции stringElement выводилась только когда $attrs["PRODUCT"] == 'blabla' ?
нельзя ли поконкретнее? всеже раздел для новичков вроде так неработает: PHP: function stringElement($parser, $desc, $attrs) { if ($attrs["PRODUCT"] == 'blabla') { echo $desc; } }
код из первого поста выдает все описания которые есть в базе. код из первого поста ни одного описания не выдает а надо только то описание которое условно 'blabla'
так тоже ничего не отдает PHP: function startElement($parser, $name, $attrs){ if($attrs["PRODUCT"]=='blabla'){ $GLOBALS['outStringElement']=1; echo $attrs["PRICE"]; }else{ $GLOBALS['outStringElement']=0; } } function endElement($parser, $name){ } function stringElement($parser, $desc){ if($GLOBALS['outStringElement']==1) echo $desc; }