Goededag,
Ik ben met wat grote XML bestanden bezig, en om het een en andere wat sneller en praktischer te houden maak ik gebruik van xpath queries die weer gedaan worden op een resultaat van xpath.
voorbeeld:
Het verwachte resultaat zou zijn:
Echter tot mijn grote verbazing is het resultaat:
Dat is toch helemaal niet logisch. Sterker nog, als ik vlak voor de 2de foreach dit neerzet werkt het wel:
Iemand enig idee?!?
Ik ben met wat grote XML bestanden bezig, en om het een en andere wat sneller en praktischer te houden maak ik gebruik van xpath queries die weer gedaan worden op een resultaat van xpath.
voorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <? $xml = ' <xml> <a> <b id="blaat"> <c>test</c> <c>test2</c> <c>test3</c> </b> <b id="schaap"> <c>bla</c> <c>bla2</c> <c>bla3</c> </b> </a> </xml>'; $el = simplexml_load_string($xml); foreach ($el->xpath("//b") as $bEl) { echo 'Found a b with id:' . $bEl->Attributes()->id . "\n"; foreach ($bEl->xpath("//c") as $cEl) { echo 'Found an c with value:' . (string) $cEl . "\n"; } } ?> |
Het verwachte resultaat zou zijn:
code:
1
2
3
4
5
6
7
8
| Found a b with id:blaat Found an c with value:test Found an c with value:test2 Found an c with value:test3 Found a b with id:schaap Found an c with value:bla Found an c with value:bla2 Found an c with value:bla3 |
Echter tot mijn grote verbazing is het resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| Found a b with id:blaat Found an c with value:test Found an c with value:test2 Found an c with value:test3 Found an c with value:bla Found an c with value:bla2 Found an c with value:bla3 Found a b with id:schaap Found an c with value:test Found an c with value:test2 Found an c with value:test3 Found an c with value:bla Found an c with value:bla2 Found an c with value:bla3 |
Dat is toch helemaal niet logisch. Sterker nog, als ik vlak voor de 2de foreach dit neerzet werkt het wel:
PHP:
1
| $bEl = simplexml_load_string($bEl->asXML()); |
Iemand enig idee?!?