2016-08-02 3 views
0

Ich verstehe nicht, warum der folgende Code mir nicht die Werte der Namen gibt. Ich rätsle schon ein paar Stunden, aber ohne Ergebnis. Jede Hilfe wird sehr schön ...Warum findet der folgende Code getElementsByTagName nicht in XML in PHP?

Der Code ist:

$xml = new DOMDocument('1.0', 'UTF-8'); 
    $xml->LoadXml(" 
<node> 
    <cv> 
    <opleiding> 
     <naam>MicrosoftOpleiding bij bill - Microsoft</naam> 
     <periode>2016</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Post Universitair Centrum (Belgie) - Master of Business Administration (Informatie, Technologie, Logistiek en Marketing)</naam> 
     <periode>1987 - 1995</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Vrije Universiteit - Bedrijfskunde</naam> 
     <periode>1987 - 1992</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Opleidingsinstantie - Studie HBO</naam> 
     <periode>2006 - 2016</periode> 
    </opleiding> 
    </cv> 
</node> 
"); 
    writetolog ("Dump of XML: ". $xml->savexml()); 
    $nodelist = $xml->getElementsByTagName('opleiding'); 
    foreach ($nodeList as $node) { 
    $naam = $node->getElementsByTagName('naam'); 
    $naamID = $naam->item(0)->nodeValue; 
    writetolog ("The name in de opleiding is " . $naamID); 
    } 
    writetolog ("After the loop"); 

Dann in meiner Protokolldatei ist:

14:26:48 Start run 
14:26:48 s:644:"Dump of XML: <?xml version="1.0"?> 
<node> 
    <cv> 
    <opleiding> 
     <naam>MicrosoftOpleiding bij bill - Microsoft</naam> 
     <periode>2016</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Post Universitair Centrum (Belgie) - Master of Business Administration (Informatie, Technologie, Logistiek en Marketing)</naam> 
     <periode>1987 - 1995</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Vrije Universiteit - Bedrijfskunde</naam> 
     <periode>1987 - 1992</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Opleidingsinstantie - Studie HBO</naam> 
     <periode>2006 - 2016</periode> 
    </opleiding> 
    </cv> 
</node> 
"; 
14:26:48 s:14:"After the loop"; 

Warum ist mein $ Nodelist leer?

+0

'$ nodelist' =' $ nodeList' – FirstOne

+0

mmm, thxs nicht wusste, dass dieser Fall empfindlich ist ... pffffff. – Justme

+0

Wenn ich diese Fehler aktiviere, sehe ich sie nicht auf meinem Bildschirm. Ich entwickle unter Drupal, wie bekomme ich diese Fehler in eine Datei? – Justme

Antwort

2

Fall zählt: $nodelist und $nodeList sind verschiedene Variablen. Ändern

$nodelist = $xml->getElementsByTagName('opleiding'); 

zu

$nodeList = $xml->getElementsByTagName('opleiding'); 

sollte das Problem lösen.

+0

Referenz: [Basics] (http://php.net/manual/en/language.variables.basics.php): _Der Variablenname unterscheidet zwischen Groß- und Kleinschreibung._ – FirstOne

3

Verwenden Sie den folgenden Code -

$xml = <<< XML 
<?xml version="1.0" encoding="utf-8"?> 
<node> 
    <cv> 
    <opleiding> 
     <naam>MicrosoftOpleiding bij bill - Microsoft</naam> 
     <periode>2016</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Post Universitair Centrum (Belgie) - Master of Business Administration (Informatie, Technologie, Logistiek en Marketing)</naam> 
     <periode>1987 - 1995</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Vrije Universiteit - Bedrijfskunde</naam> 
     <periode>1987 - 1992</periode> 
    </opleiding> 
    <opleiding> 
     <naam>Opleidingsinstantie - Studie HBO</naam> 
     <periode>2006 - 2016</periode> 
    </opleiding> 
    </cv> 
</node> 
XML; 

$dom = new DOMDocument; 
$dom->loadXML($xml); 
$opleiding = $dom->getElementsByTagName('opleiding'); 
foreach ($opleiding as $ople) { 
    echo $ople->nodeValue; 
    echo "<br/>"; 
}