2009-09-17 5 views
0

Ok, consultez ce voodoo:PHP SimpleXML est à la fois un objet et un tableau? Inconcevable!

Ce code:

$xml = new SimpleXMLElement($xml); 
$var = $xml->QBXMLMsgsRs->ClassQueryRs; 
$vars = print_r($var,true); 

Retours:

SimpleXMLElement Object 
(
    [@attributes] => Array 
     (
      [requestID] => Q2xhc3NRdWVyeXw1 
      [statusCode] => 0 
      [statusSeverity] => Info 
      [statusMessage] => Status OK 
     ) 

    [ClassRet] => Array 
     (
      [0] => SimpleXMLElement Object 
       (
        [ListID] => 80000002-1241128424 
        [TimeCreated] => 2009-04-30T17:53:44-05:00 
        [TimeModified] => 2009-04-30T17:53:44-05:00 
        [EditSequence] => 1241128424 
        [Name] => D1 
        [FullName] => D1 
        [IsActive] => true 
        [Sublevel] => 0 
       ) 

      [1] => SimpleXMLElement Object 
       (
        [ListID] => 80000001-1241128320 
        [TimeCreated] => 2009-04-30T17:52:00-05:00 
        [TimeModified] => 2009-04-30T17:52:00-05:00 
        [EditSequence] => 1241128320 
        [Name] => K1 
        [FullName] => K1 
        [IsActive] => true 
        [Sublevel] => 0 
       ) 

      [2] => SimpleXMLElement Object 
       (
        [ListID] => 80000003-1241128452 
        [TimeCreated] => 2009-04-30T17:54:12-05:00 
        [TimeModified] => 2009-04-30T17:54:12-05:00 
        [EditSequence] => 1241128452 
        [Name] => S1 
        [FullName] => S1 
        [IsActive] => true 
        [Sublevel] => 0 
       ) 
     ) 

) 

Cependant, ce code:

$xml = new SimpleXMLElement($xml); 
$var = $xml->QBXMLMsgsRs->ClassQueryRs->ClassRet; 
$vars = print_r($var,true); 

Retours:

SimpleXMLElement Object 
(
    [ListID] => 80000002-1241128424 
    [TimeCreated] => 2009-04-30T17:53:44-05:00 
    [TimeModified] => 2009-04-30T17:53:44-05:00 
    [EditSequence] => 1241128424 
    [Name] => D1 
    [FullName] => D1 
    [IsActive] => true 
    [Sublevel] => 0 
) 

Pour la vie de moi, je ne peux pas accéder au reste de cet objet! Echo, print_r .... si j'essaie d'accéder à la variable spécifique, elle disparaît!

+0

Quelle est votre question? –

+0

"Vous continuez à utiliser ce mot, je ne pense pas que cela signifie ce que vous pensez que cela signifie." ;) – TrueWill

Répondre

3

SimpleXml de PHP est un objet qui implémente l'interface ArrayAccess, ce qui signifie que vous pouvez référencer des éléments avec la syntaxe de style de tableau.

+1

FYI: Cette question a déjà été posée: http://stackoverflow.com/questions/664221/how-does-simple-xml-use-the-operator – Asaph

+0

Lorsque j'essaie d'y accéder en tant que tableau, je reçois rien. Quand j'y accède en tant qu'objet, je n'obtiens que le premier résultat. – Citizen

+0

Pouvez-vous poster votre fichier XML pour que nous puissions tester et reproduire le problème? – Asaph

Questions connexes