首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

小妹又遇到取XML子节点有关问题。请帮忙给看看1

2012-03-29 
小妹又遇到取XML子节点问题。请帮忙给看看1我取到一级目录的节点,但是它的下一级目录我就是取不到不知道为

小妹又遇到取XML子节点问题。请帮忙给看看1
我取到一级目录的节点,但是它的下一级目录我就是取不到

不知道为什么请各位师哥指正。
<?php
$XMLStr='
<WallPaperList>
  <WallPaper ID="69" UpdateTime="2008-12-10 12:00:00">
  <Point ID="1">
  <Agent ID="123456" UpdateTime="2008-12-10 12:00:00"/>
  <Agent ID="123457" UpdateTime="2008-12-10 12:00:00"/>
  </Point>
  <Point ID="2">
  <Agent ID="123456" UpdateTime="2008-12-10 12:00:00"/>
  <Agent ID="123457" UpdateTime="2008-12-10 12:00:00"/>
  </Point>
  </WallPaper>
</WallPaperList>';
if($XMLStr!="")
{
$XMLStr=stripcslashes($XMLStr);
$xml = new DOMDocument(); //建立一个DOMDocument
$xml->loadXML($XMLStr); //Php指定需要读取xml文件的位置
$itemObj = $xml->getElementsByTagName('WallPaper');//按照名称取得节点,返回所有节点的集合,不过这里这样读LevelOne是没有意义的....

for($i=0;$i<$itemObj->length;$i++)
{  
$id= $itemObj->item($i)->getAttribute("ID");
$updatetime= $itemObj->item($i)->getAttribute("UpdateTime");
echo "ID:".$id."<br>";
echo "UpdateTime:".$updatetime."<br>";//到这里都正确!

$PointObj=$itemObj->getElementsByTagName('Point');//再去查找一下子节点
echo $PointObj->length;
}
}
?>

总报错:Fatal error: Call to undefined method DOMNodeList::getElementsByTagName() in C:\wamp\www\admin\interface\wallpaper_update.php on line 36

帮我看看这是为什么那!请师哥指正。



[解决办法]

PHP code
$XMLStr=' <WallPaperList>     <WallPaper ID="69" UpdateTime="2008-12-10 12:00:00">         <Point ID="1">             <Agent ID="123456" UpdateTime="2008-12-10 12:00:00"/>             <Agent ID="123457" UpdateTime="2008-12-10 12:00:00"/>         </Point>         <Point ID="2">             <Agent ID="123456" UpdateTime="2008-12-10 12:00:00"/>             <Agent ID="123457" UpdateTime="2008-12-10 12:00:00"/>         </Point>     </WallPaper> </WallPaperList>'; if($XMLStr!="") {     $XMLStr=stripcslashes($XMLStr);     $xml = new DOMDocument(); //建立一个DOMDocument     $xml->loadXML($XMLStr); //Php指定需要读取xml文件的位置     $itemObj = $xml->getElementsByTagName('WallPaper');//按照名称取得节点,返回所有节点的集合,不过这里这样读LevelOne是没有意义的....     for($i=0;$i <$itemObj->length;$i++)     {             $id= $itemObj->item($i)->getAttribute("ID");         $updatetime= $itemObj->item($i)->getAttribute("UpdateTime");         echo "ID:".$id." <br>";         echo "UpdateTime:".$updatetime." <br>";//到这里都正确!                 $PointObj=$itemObj->item($i)->getElementsByTagName('Point');//再去查找一下子节点         echo $PointObj->length;     } } 

热点排行