xml tag met en zonder namespace combineren
Dit is mijn code.
Code (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
$xml = '<voorbeeld xmlns:kennis="link"
xmlns:tagg="verbinding"
xmlns:aanhef="doorgang"
xmlns:voornaam="verwijzing"
xmlns:achternaam="brug"
xmlns:hobby="my.foo.urn">
<kennis>
<tagg:a>
<aanhef:a>Mevr </aanhef:a>
<persoon>
<voornaam:a>Caro</voornaam:a>
<achternaam:a>Emerald gaat</achternaam:a>
<hobby:a> graag zingen </hobby:a>
</persoon>
</tagg:a>
</kennis>
<kennis>
<tagg:b>
<aanhef:b>Dhr </aanhef:b>
<persoon>
<voornaam:b>Bas</voornaam:b>
<achternaam:b>van de Ven</achternaam:b>
<hobby:b> drummen </hobby:b>
</persoon>
</tagg:b>
</kennis>
<kennis>
<tagg:c>
<aanhef:c>Jongeman </aanhef:c>
<persoon>
<voornaam:c>Ruben</voornaam:c>
<achternaam:c>Verhoeven</achternaam:c>
<hobby:c> voetballen </hobby:c>
</persoon>
</tagg:c>
</kennis>
</voorbeeld>' ;
$sxe = new SimplexmlElement($xml) ;
foreach($sxe->kennis as $kennis) {
$tagdata = $kennis->children('verbinding'); // EXTRA TAG
$aanhefdata = $tagdata->children('doorgang');//AANHEF
echo $tagdata->a.$aanhefdata->a;
foreach($tagdata->kennis as $persoon) {
$Vnaamdata = $persoon->children('verwijzing'); //VOORNAAM
$Anaamdata = $persoon->children('brug');// ACHTERNAAM
$hobbydata = $persoon->children('my.foo.urn');//HOBBY
echo $tagdata->a.$aanhefdata->a.$Vnaamdata->a.$Anaamdata->a.$hobbydata->a;
echo $tagdata->b.$aanhefdata->b.$Vnaamdata->b.$Anaamdata->b.$hobbydata->b;
}
echo $tagdata->b.$aanhefdata->b.$Anaamdata->b.$hobbydata->b;
echo $tagdata->c.$aanhefdata->c.$Anaamdata->c.$hobbydata->c;
echo '<br/>';
}
xmlns:tagg="verbinding"
xmlns:aanhef="doorgang"
xmlns:voornaam="verwijzing"
xmlns:achternaam="brug"
xmlns:hobby="my.foo.urn">
<kennis>
<tagg:a>
<aanhef:a>Mevr </aanhef:a>
<persoon>
<voornaam:a>Caro</voornaam:a>
<achternaam:a>Emerald gaat</achternaam:a>
<hobby:a> graag zingen </hobby:a>
</persoon>
</tagg:a>
</kennis>
<kennis>
<tagg:b>
<aanhef:b>Dhr </aanhef:b>
<persoon>
<voornaam:b>Bas</voornaam:b>
<achternaam:b>van de Ven</achternaam:b>
<hobby:b> drummen </hobby:b>
</persoon>
</tagg:b>
</kennis>
<kennis>
<tagg:c>
<aanhef:c>Jongeman </aanhef:c>
<persoon>
<voornaam:c>Ruben</voornaam:c>
<achternaam:c>Verhoeven</achternaam:c>
<hobby:c> voetballen </hobby:c>
</persoon>
</tagg:c>
</kennis>
</voorbeeld>' ;
$sxe = new SimplexmlElement($xml) ;
foreach($sxe->kennis as $kennis) {
$tagdata = $kennis->children('verbinding'); // EXTRA TAG
$aanhefdata = $tagdata->children('doorgang');//AANHEF
echo $tagdata->a.$aanhefdata->a;
foreach($tagdata->kennis as $persoon) {
$Vnaamdata = $persoon->children('verwijzing'); //VOORNAAM
$Anaamdata = $persoon->children('brug');// ACHTERNAAM
$hobbydata = $persoon->children('my.foo.urn');//HOBBY
echo $tagdata->a.$aanhefdata->a.$Vnaamdata->a.$Anaamdata->a.$hobbydata->a;
echo $tagdata->b.$aanhefdata->b.$Vnaamdata->b.$Anaamdata->b.$hobbydata->b;
}
echo $tagdata->b.$aanhefdata->b.$Anaamdata->b.$hobbydata->b;
echo $tagdata->c.$aanhefdata->c.$Anaamdata->c.$hobbydata->c;
echo '<br/>';
}
Gewijzigd op 18/01/2014 20:22:22 door Bas van de Ven
wat geeft print_r($sxe); ?
SimpleXMLElement Object ( [kennis] => Array ( [0] => SimpleXMLElement Object ( ) [1] => SimpleXMLElement Object ( ) [2] => SimpleXMLElement Object ( ) ) )