xml tag met en zonder namespace combineren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas van de Ven

Bas van de Ven

17/01/2014 16:44:12
Quote Anchor link
O.b.v. een xml structuur die ik heb aangeleverd gekregen van de overheid wil ik gegevens van mijn site kunnen doorsturen. Aan deze xml structuur kan ik niets wijzigen en deze bevat tag met en zonder namespaces. Ik ben aan het experimenteren met xml. Xml zonder namespaces krijg ik verwerkt binnen php. Ook xml met enkel namespaces lukt. Wil ik een xml structuur gebruiken waarin tags worden gecombineerd met en zonder namespaces dan verschijnt er niets, een gedeelte of verkeerde info op mijn scherm. Foutmeldingen krijg ik niet, alleen als ik de voornaam ($Vnaamdata) wil echoën. Kan iemand mij vertellen wat ik verkeerd doe ?
Dit is mijn code.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
$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/>';    
    
    }
Gewijzigd op 18/01/2014 20:22:22 door Bas van de Ven
 
PHP hulp

PHP hulp

25/04/2024 16:23:30
 
Ivo P

Ivo P

17/01/2014 16:47:52
Quote Anchor link
wat geeft print_r($sxe); ?
 
Bas van de Ven

Bas van de Ven

17/01/2014 16:56:24
Quote Anchor link
Dit resultaat :
SimpleXMLElement Object ( [kennis] => Array ( [0] => SimpleXMLElement Object ( ) [1] => SimpleXMLElement Object ( ) [2] => SimpleXMLElement Object ( ) ) )
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.