wahsaga: SimpleXML: einzelner Kindknoten vs. Array von Kindknoten

Beitrag lesen

hi,

wenn ich ein XML-Dokument mittels SimpleXML einlese, erhalte ich an der Stelle, wo ein Element nur einen Kindknoten eines bestimmten Typs (also NodeNames) hat, ein weiteres SimpleXMLElement als Repräsentation dieses Kindknotens [1] - hat das Element jedoch mehrere Kindknoten dieses Typs, erhalte ich ein Array von SimpleXMLElementen [2].

Lässt sich dieses Verhalten beeinflussen, so dass ich auch wenn nur ein Kindknoten eines NodeNames vorhanden ist, ein Array mit entsprechend nur einem Eintrag erhalte [3]?

Es würde die Verarbeitung für mein Vorhaben nämlich vereinfachen, wenn ich immer gleich mittels foreach() über die oder den Kindknoten iterieren könnte - ohne zunächst abprüfen zu müssen, ob ich nun ein Array aus Kindknoten oder nur einen einzigen Kindknoten vorliegen habe.

Seit PHP 5.1.0 und libxml 2.6.0 können zwar vordefinierte libxml-Konstanten als options bei der Erzeugung eines SimpleXMLElements angegeben werden - aber da entdecke ich keine, die das gewünschte Verhalten bewirken würde.

Haben die PHP-Entwickler an eine solche Möglichkeit tatsächlich nicht gedacht - oder habe ich sie lediglich übersehen/nicht erkannt?

[1] Ausgabe print_r() für dieses Szenario:

SimpleXMLElement Object  
(  
    [parentElement] => SimpleXMLElement Object  
        (  
            [childNode] => SimpleXMLElement Object  
                (  
                    [contentNode] => Inhalt Child 1  
                )  
  
        )  
  
)

[2] Ausgabe print_r() für dieses Szenario:

SimpleXMLElement Object  
(  
    [parentElement] => SimpleXMLElement Object  
        (  
            [childNode] => Array  
                (  
                    [0] => SimpleXMLElement Object  
                        (  
                            [contentNode] => Inhalt Child 1  
                        )  
  
                    [1] => SimpleXMLElement Object  
                        (  
                            [contentNode] => Inhalt Child 2  
                        )  
  
                )  
  
        )  
  
)

[3] Ausgabe des gewünschten Ergebnisses mit print_r() für dieses Szenario:

SimpleXMLElement Object  
(  
    [parentElement] => SimpleXMLElement Object  
        (  
            [childNode] => Array  
                (  
                    [0] => SimpleXMLElement Object  
                        (  
                            [contentNode] => Inhalt Child 1  
                        )  
  
                )  
  
        )  
  
)

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }