Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom amigos, preciso ler o conteúdo de um arquivo XML, peguei um exemplo pronto, dei uma lida a respeito no site xml.com e enfim, estou tendo problemas, aparece a seguinte mensagem:
Notice: Undefined variable: id in c:\arquivos de programas\easyphp1-8\www\rdm\inc\fnc_xml_new.php on line 105
Notice: Undefined property: in c:\arquivos de programas\easyphp1-8\www\rdm\inc\fnc_xml_new.php on line 105
<!-- XML --><microondas><informacao><nome>Microondas Simulado v1.0</nome><versao>1.0</versao><firmware>1.0</firmware></informacao><comandos><funcao><id>1</id><nome>Ativar</nome><valor>[02]AT[03]</valor><tipo>button</tipo></funcao></comandos></microondas><!-- Fim do XML -->
// PHP<?class XMLinfo {var $nome;var $versao;var $firmware;}class XMLfunc {var $id;var $nome;var $valor;var $tipo;}$gid = 0;$gnome = "";$gvalor = "";$tipo = "";$funcArr = array();$funcCont = 0;$xmlFile = "file.xml";$xmlDesc = false;function startElement($parser, $name, $attrs) {global $curTag;$curTag .= "^$name";}function endElement($parser, $name) {global $curTag;$caret_pos = strrpos($curTag,'^');$curTag = substr($curTag,0,$caret_pos);}function characterData($parser, $data) { global $curTag; // get the Channel information firstglobal $gid, $gnome, $gvalor, $tipo; $idKey = "^MICROONDAS^COMANDOS^ID";$nomeKey = "^MICROONDAS^COMANDOS^NOME";$valorKey = "^MICROONDAS^COMANDOS^VALOR";$tipoKey = "^MICROONDAS^COMANDOS^TIPO";if ($curTag == $idKey) {$gid = $data;}elseif ($curTag == $nomeKey) {$gnome = $data;}elseif ($curTag == $valorKey) {$gvalor = $data;}elseif ($curTag == $tipoKey) {$tipo = $data;}// now get the items global $funcArr, $funcCont;$idItemKey = "^MICROONDAS^COMANDOS^FUNCAO^ID";$nomeItemKey = "^MICROONDAS^COMANDOS^FUNCAO^NOME";$valorItemKey = "^MICROONDAS^COMANDOS^FUNCAO^VALOR";$tipoItemKey = "^MICROONDAS^COMANDOS^FUNCAO^TIPO";if ($curTag == $idItemKey) {// make new xItem $funcArr[$funcCont] = new XMLfunc(); // set new item object's properties $funcArr[$funcCont]->id = $data;}elseif ($curTag == $nomeItemKey) {$funcArr[$funcCont]->nome = $data;}elseif ($curTag == $valorItemKey) {$funcArr[$funcCont]->valor = $data;}elseif ($curTag == $tipoItemKey) {$funcArr[$funcCont]->tipo = $data;// increment item counter$funcCont++;}}// main loop$xml_parser = xml_parser_create();xml_set_element_handler($xml_parser, "startElement", "endElement");xml_set_character_data_handler($xml_parser, "characterData");//if (!($fp = fopen($xmlFile,"r"))) {die ("Não foi possível abrir o arquivo XML de configurações.");}while ($data = fread($fp, 4096)) {if (!xml_parse($xml_parser, $data, feof($fp))) {die(sprintf("Erro XML: %s na linha %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));}}xml_parser_free($xml_parser);for ($i=0;$i<count($funcArr);$i++) {$txItem = $funcArr[$i];echo "ID = " . $txItem->$id . "\t NOME = " . $txItem->$nome . " \t ";echo "VALOR = " . $txItem->$valor . " \t TIPO = " . $txItem->$tipo . " <BR>";}?></body>
** Linha 105: echo "ID = " . $txItem->$id . "\t NOME = " . $txItem->$nome . " \t "; **Carregando comentários...