Ik ben geïnteresseerd in een bepaald deel van een XML. Om de waardes uit de XML te krijgen parse ik de XML m.b.v. de XML parser van PHP. Het deel waarin ik geïnteresseerd ben ziet er als volgt uit:
Mijn xml_set_character_data_handler ziet er zo uit:
Ik verwacht dat mijn array er straks zoiets uitziet:
Maar hier gaat het mis. Als ik een var dump doe van $arr krijg ik netjes bovenstaande, maar dan zonder het emailadres. Dat betekent dat hij in de callbackfunctie komt, in de if komt maar niet de waarde van $txt in de array schrijft.
Helemaal vreemd wordt het, dat 'echo' wel degelijk een emailadres op het scherm print, waaruit ik concludeer dat $txt dus gevuld is.
Waarom wordt de array niet gevuld, terwijl $txt een waarde bevat?
code:
1
2
3
4
5
6
7
8
| </Accounts> <extraContactInfo> <----------------------------------------------------vanaf hier <contact_email>test@test.au</contact_email> <contact_mobile></contact_mobile> <contact_function></contact_function> <exactdb>001</exactdb> </extraContactInfo> <----------------------------------------------------t/m hier </eExact> |
Mijn xml_set_character_data_handler ziet er zo uit:
PHP:
(er zitten nog meer if-jes in maar voor het idee is dit voldoende)1
2
3
4
5
6
7
8
9
| function tagData($parser, $txt){ global $currentTag; global $arr; if($currentTag == 'contact_email'){ $arr[$currentTag] = $txt; echo $txt; } } |
Ik verwacht dat mijn array er straks zoiets uitziet:
code:
1
2
3
4
| contactdata: Array ( [contact_email] => test@test.au ) |
Maar hier gaat het mis. Als ik een var dump doe van $arr krijg ik netjes bovenstaande, maar dan zonder het emailadres. Dat betekent dat hij in de callbackfunctie komt, in de if komt maar niet de waarde van $txt in de array schrijft.
Helemaal vreemd wordt het, dat 'echo' wel degelijk een emailadres op het scherm print, waaruit ik concludeer dat $txt dus gevuld is.
Waarom wordt de array niet gevuld, terwijl $txt een waarde bevat?