2010-12-15 2 views
1

Я следующий простой объект XML файл:как получить позицию simplexmlobject PHP

[AuthorList] => SimpleXMLElement Object 
(
    [@attributes] => Array 
     (
      [CompleteYN] => Y 
     ) 

    [Author] => Array 
     (
      [0] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => van Tricht 
        [ForeName] => M J 
        [Initials] => MJ 
       ) 

      [1] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Nieman 
        [ForeName] => D H 
        [Initials] => DH 
       ) 

      [2] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Bour 
        [ForeName] => L J 
        [Initials] => LJ 
       ) 

      [3] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Boerée 
        [ForeName] => T 
        [Initials] => T 
       ) 

      [4] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Koelman 
        [ForeName] => J H T M 
        [Initials] => JH 
       ) 

      [5] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => de Haan 
        [ForeName] => L 
        [Initials] => L 
       ) 

      [6] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Linszen 
        [ForeName] => D H 
        [Initials] => DH 
       ) 

     ) 
) 

Теперь я хочу, чтобы вывести положение одного имени, например

позиции LastName Боря 2 0f 6

(0 является начальный индекс)

кто-нибудь знать это?

ответ

1

Используйте петлю для петли. Допустим, $ authorList Ваш объект SimpleXML

$authorsCount = count($authorList->author); 
$result=-1; 

for($i=0;$i<$authorsCount;$i++){ 
    if($authorList->author[$i]->LastName =="Boeree"){ 
$result=$i; 
break; 
} 

if($result==-1) echo "Boereee not found"; 
else echo "position LastName Boree is {$result} of {$authorsCount}"; 

EDIT: редактировать код, чтобы использовать объект SimpleXML вместо массива

+0

Привет спасибо ... но я новичок в PHP и функциональности массива, можете ли вы рассказать мне, как получить авторов из указанного массива в допустимой переменной? – Thijs 2010-12-15 12:57:35

Смежные вопросы