我不明白为什么下面的代码没有给我这些名字的值。我已经困惑了几个小时但没有结果。任何帮助都会非常好......
代码是:
$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");
然后在我的日志文件中:
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";
为什么我的$ nodelist为空?
答案 0 :(得分:3)
使用以下代码 -
$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/>";
}
答案 1 :(得分:2)
案例问题:$nodelist
和$nodeList
是不同的变量。改变
$nodelist = $xml->getElementsByTagName('opleiding');
到
$nodeList = $xml->getElementsByTagName('opleiding');
应该解决问题。