如何只显示xml中的必要信息

时间:2010-03-26 13:31:47

标签: php xml

我有xml表:

<?xml version="1.0" encoding="UTF-8"?>
<table>
  <user>
    <id>1</id>
  <info>
    <more>
      <nick>John</nick>
      <adress>blabla</adress>
    </more>
    <more>
      <nick>Mike</nick>
      <adress>blablabla</adress>
      <tel>blablabla</tel>
    </more>
  </info>
  </user>
  <user>
    <id>2</id>
  <info>
    <more>
      <nick>Fake</nick>
      <adress>blablabla</adress>
      <tel>blablabla</tel>
    </more>
  </info>
  </user>
</table>

我需要从中读取数据。我做了这样的解析器。

<?php
$xml = simplexml_load_file("test.xml");

echo $xml->getName() . "<br /><br />";
echo '<hr />';

foreach ($xml->children() as $child1){
    //echo $child1->getName() . ": " . $child1 . "<br />";   //el
    foreach($child1->children() as $child2){

    if ((string)$child2 == '2') {
            echo "<strong>" .$child2 . "</strong><br />";

            foreach($child2->children() as $child3){
            echo "<strong>".$child3->getName()."</strong>:" . $child3 . "<br />";
                foreach($child3->children() as $child4){
                    echo $child4->getName() . ": " . $child4 . "<br />";
                }
            }
    }   
    }

echo '<hr />';
echo '<br />';
}
?>

我想在xml文件中进行搜索,例如获取有关id为2的用户的所有信息,我尝试用if函数实现它,但我只得到id。 怎么了?。有什么建议??

1 个答案:

答案 0 :(得分:0)

您可能希望查看使用XPath,因为我无法解析此martrix。 <{3}}可能是处理这种情况的更好方法,从你正在做的事情来看。