如何从使用PHP的XML文件中读取所有节点?不仅仅是特定的节点


How to read all Nodes from XML file with using PHP? Not just specific nodes

这是我的XML文件:

<ROOT>
  <WEB>
    <thumb>images/thumbs/thumb.jpg</thumb>
    <TITEL>Website</TITEL>
  </WEB>
  <FLYER>
    <thumb>images/thumbs/thumb.jpg</thumb>
    <TITEL>Flyer</TITEL>
  </FLYER>
  <CD>
    <thumb>images/thumbs/thumb.jpg</thumb>
    <TITEL>cd</TITEL>
  </CD>
</ROOT>

在我的PHP文件中,我想从xml文件中读出

<?php
$q=$_GET["q"];
$xmlDoc = new DOMDocument();
$xmlDoc->load("references.xml");
if ($q=="ALL"){
    $root = $xmlDoc->documentElement;
    $products = $root->childNodes;
} else {
    $products=$xmlDoc->getElementsByTagName($q);
}
foreach( $products as $product ){
    $titles = $product->getElementsByTagName( "TITEL" );
    $title = $titles->item(0)->nodeValue;
    $thumbs = $product->getElementsByTagName( "thumb" );
    $thumb = $thumbs->item(0)->nodeValue;
    echo '<div style="float:left; margin:0 3px;">';
    echo "<img src='".$thumb."' /><br />";
    echo "<p style='text-align: center;'><b>".$title."</b></p></div>";
}
?>

PHP代码应该检查输入是否为"ALL",然后打印出所有内容。如果输入是"WEB"、"FLYER"或"CD",那么它只打印出这些项目,这很好。但是对于所有节点,它都不能正确打印出来。有很多div标签里面什么都没有。有人知道为什么和如何解决它吗??

谢谢

哪里有

$root = $xmlDoc->documentElement;
$products = $root->childNodes;

如果你把

$products = $xmlDoc->getElementsByTagName("ROOT");

它工作吗?

相关文章: