Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема с xml
Форумы портала PHP.SU » » Вопросы новичков » Проблема с xml

Страниц (1): [1]
 

1. android - 13 Ноября, 2011 - 16:04:05 - перейти к сообщению
Привет, появилась незначительная проблема...

Есть код"
PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = simplexml_load_file('test.xml');        
  3. echo '<hr/>';
  4. if($xml->test->uid == $id) {
  5.  echo $xml->test->name;
  6. }
  7.  


и файл test.xml
PHP:
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <testimonials>
  4.         <test id="1">
  5.                 <name>test1</name>
  6.                 <content>1</content>
  7.                 <uid>1</uid>
  8.         </test>
  9.         <test id="2">
  10.                 <name>test2</name>
  11.                 <content>2</content>
  12.                 <uid>2</uid>
  13.         </test>
  14. </testimonials>
  15.  


мне нужно вывести в echo <test id="1"> именно с ID=1

Можно сделать так:

echo $xml->test[0]->name;

Но это не то... мне нужно указывать

допустим echo $xml->test[id='1']->name;

Как можно сделать?
(Добавление)
Разобрался Ха-ха

attributes()


Улыбка
2. vectorserver - 13 Ноября, 2011 - 20:04:39 - перейти к сообщению
Попроще будет через xpath
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $xml = simplexml_load_file('e.xml');
  4.    
  5. foreach($xml->xpath(".//*[@id='1']") as $id)
  6. {
  7.  print $id->name;
  8. }                  
  9. ?>

 

Powered by ExBB FM 1.0 RC1