我不太清楚为什么我的内部循环数据被添加到外部循环数据 -
我正在解析的XML - http://pastebin.com/vGc5NhXr
我正在使用的代码 -
<?php
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->load('course/Golf/imsmanifest.xml');
// get the resources element
$organization = $dom->getElementsByTagName( "item" );
echo '<ul>';
foreach( $organization as $organizationItem )
{
$unitTitle = $organizationItem->getElementsByTagName("title");
$unitName = $unitTitle->item(0)->nodeValue;
echo '<li>',$unitName,'</li>';
echo '<ul>';
$item1 = $organizationItem->getElementsByTagName( "item" );
foreach( $item1 as $myitem ) {
$title = $myitem->getElementsByTagName("title");
$author = $title->item(0)->nodeValue;
echo '<li>',$author,'</li>';
}
echo '</ul>';
}
echo '</ul>';
生成的输出 - http://codepad.org/J2vP71rd
预期输出 - http://codepad.org/uzUtehgT
让我知道我为每个循环做错了什么。
答案 0 :(得分:1)
因为item
元素是嵌套的。 $dom->getElementsByTagName( "item" )
获取所有item
个元素,包括那些位于另一个item
内的元素。那不是你想要的。
我建议使用XPath来完成这类工作。