Как отобразить только необходимую информацию из XML - PullRequest
0 голосов
/ 26 марта 2010

У меня есть таблица 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, например, получить всю информацию о пользователе с идентификатором 2, я пытаюсь реализовать это с помощью функции if, но я получаю только идентификатор. Что случилось?. Какие-либо предложения??

1 Ответ

0 голосов
/ 26 марта 2010

Возможно, вы захотите использовать XPath , поскольку я не могу разобрать этот martrix. XSLT , вероятно, является лучшим способом справиться с этим, исходя из того, как вы это делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...