在php中解析xml时,循环运行了两次
我不太清楚为什么我的内环数据会被添加到外环数据中- 我正在解析的XML- 我正在使用的代码-在php中解析xml时,循环运行了两次,php,xml,dom,foreach,domdocument,Php,Xml,Dom,Foreach,Domdocument,我不太清楚为什么我的内环数据会被添加到外环数据中- 我正在解析的XML- 我正在使用的代码- <?php $dom = new DomDocument; $dom->preserveWhiteSpace = FALSE; $dom->load('course/Golf/imsmanifest.xml'); // get the resources element $organization = $dom->getElementsByTagName( "item" )
<?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>';
getElementsByTagName(“项目”);
回声“”;
foreach($organizationItem形式的组织)
{
$unitTitle=$organizationItem->getElementsByTagName(“标题”);
$unitName=$unitTitle->item(0)->nodeValue;
回显“- ”、$unitName“
”;
回声“”;
$item1=$organizationItem->getElementsByTagName(“项目”);
foreach($item1作为$myitem){
$title=$myitem->getElementsByTagName(“title”);
$author=$title->item(0)->nodeValue;
回音“- ”,$author“
”;
}
回声“
”;
}
回声“
”;
生成输出-
预期产出-
让我知道for each循环的错误所在。因为
项
元素是嵌套的$dom->getElementsByTagName(“item”)
获取所有item
元素,包括位于另一item
中的元素。那不是你想要的
我建议用于此类工作。没有查看代码,但似乎只有下面没有列表的行不会被处理。您正在检查哪种浏览器?选择xPath的原因是什么?@swapnesh,因为xPath设计用于从XML文档中选择节点。它比DOM方法更强大、更灵活。