xml tags zonder namespace aanroepen vanuit tag met namespace

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas van de Ven

Bas van de Ven

27/06/2014 17:29:35
Quote Anchor link
In deze topic probeer ik nogmaals mijn probleem opgelost te krijgen.

Ik wil een aangeleverde xml-structuur integreren binnen php. Aan de structuur van de xml ben ik gebonden en kan dus niets wijzigen. De structuur bevat tags met en zonder namespaces en ziet er vergelijkbaar uit als onderstaande code waarmee ik aan het testen ben. Afzonderlijk gebruik van tags zonder namespaces of enkel tag met namesspaces krijg ik werkend binnen php. Het combineren van deze twee tags lukt me niet.

In onderstaande code wordt de loop foreach($tagdata->persoon as $persoon) niet gestart. Dit blijkt uit de sourch code. Het script stopt net als de loop zou moeten worden gestart. Geen enkel echo wordt getoond binnen de loop foreach($tagdata->persoon as $persoon).
Kan iemand mij uitleggen wat er niet goed is aan de code ? Ik heb werkelijk al van alles geprobeerd.

Nergens op internet krijg ik iets gevonden ook php programmeurs die ik heb gesproken houden de bood af. Wil ik dan iets wat niet kan of zo ?

<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
65
66
67
68
69
<?php
$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 "De aanhef is : ".$tagdata->a.$aanhefdata->a;
    echo $tagdata->b.$aanhefdata->b;
    echo $tagdata->c.$aanhefdata->c;

    foreach($tagdata->persoon 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/>';    
    
    }

echo "<br>";    
?>

</code>
Gewijzigd op 27/06/2014 17:39:10 door Bas van de Ven
 
PHP hulp

PHP hulp

26/04/2024 00:52:28
 
Ward van der Put
Moderator

Ward van der Put

27/06/2014 18:38:54
Quote Anchor link
Dit is je derde topic over namespaces in XML. Niet flauw bedoeld hoor, dus ook niet zo lezen, maar dat is wel een signaal voor de richting waarin je het bijlezen en bijspijkeren moet zoeken.
 
Ivo P

Ivo P

27/06/2014 19:12:10
Quote Anchor link
Misschien xlst om de xml om te vormen naar iets waar je wel wat mee kunt?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

27/06/2014 19:21:36
 



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.