Ik heb hier gister de haren over uit mn hoofd getrokken, vandaag eindelijk tot de wortel van het probleem gekomen. Het betreft het volgende stuk voorbeeldcode:
De verwachte output is wat mij betreft '11', maar tot mijn stomme verbazing is de output '01'. Om de een of andere reden wil xpath niet meer lekker querien als er een xmlns-attribuut in de roottag staat. Kan iemand mij vertellen waarom dit is? Mijn workaround is nu maar om het attribuut eruit te regexpen voor ik de string in loadXML gooi, maar dit lijkt me toch niet helemaal de bedoeling.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <?php $xml = new DomDocument(); $xml->loadXML('<?xml version="1.0" encoding="UTF-8"?> <root xmlns="test"><node /></root> '); $xpath = new DOMXPath($xml); echo $xpath->query('node')->length; $xml = new DomDocument(); $xml->loadXML('<?xml version="1.0" encoding="UTF-8"?> <root><node /></root> '); $xpath = new DOMXPath($xml); echo $xpath->query('node')->length; |
De verwachte output is wat mij betreft '11', maar tot mijn stomme verbazing is de output '01'. Om de een of andere reden wil xpath niet meer lekker querien als er een xmlns-attribuut in de roottag staat. Kan iemand mij vertellen waarom dit is? Mijn workaround is nu maar om het attribuut eruit te regexpen voor ik de string in loadXML gooi, maar dit lijkt me toch niet helemaal de bedoeling.