Parsage d'un fichier XML

SimpleXMLElement Object
(
    [PurchaseOrder] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [PurchaseOrderNumber] => 99503
                            [OrderDate] => 1999-10-20
                        )

                    [Address] => Array
                        (
                            [0] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [Type] => Shipping
                                        )

                                    [Name] => Ellen Adams
                                    [Street] => 123 Maple Street
                                    [City] => Mill Valley
                                    [State] => CA
                                    [Zip] => 10999
                                    [Country] => USA
                                )

                            [1] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [Type] => Billing
                                        )

                                    [Name] => Tai Yee
                                    [Street] => 8 Oak Avenue
                                    [City] => Old Town
                                    [State] => PA
                                    [Zip] => 95819
                                    [Country] => USA
                                )

                        )

                    [DeliveryNotes] => Please leave packages in shed by driveway.
                    [Items] => SimpleXMLElement Object
                        (
                            [Item] => Array
                                (
                                    [0] => SimpleXMLElement Object
                                        (
                                            [@attributes] => Array
                                                (
                                                    [PartNumber] => 872-AA
                                                )

                                            [ProductName] => Lawnmower
                                            [Quantity] => 1
                                            [USPrice] => 148.95
                                            [Comment] => Confirm this is electric
                                        )

                                    [1] => SimpleXMLElement Object
                                        (
                                            [@attributes] => Array
                                                (
                                                    [PartNumber] => 926-AA
                                                )

                                            [ProductName] => Baby Monitor
                                            [Quantity] => 2
                                            [USPrice] => 39.98
                                            [ShipDate] => 1999-05-21
                                        )

                                )

                        )

                )

            [1] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [PurchaseOrderNumber] => 99505
                            [OrderDate] => 1999-10-22
                        )

                    [Address] => Array
                        (
                            [0] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [Type] => Shipping
                                        )

                                    [Name] => Cristian Osorio
                                    [Street] => 456 Main Street
                                    [City] => Buffalo
                                    [State] => NY
                                    [Zip] => 98112
                                    [Country] => USA
                                )

                            [1] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [Type] => Billing
                                        )

                                    [Name] => Cristian Osorio
                                    [Street] => 456 Main Street
                                    [City] => Buffalo
                                    [State] => NY
                                    [Zip] => 98112
                                    [Country] => USA
                                )

                        )

                    [DeliveryNotes] => Please notify me before shipping.
                    [Items] => SimpleXMLElement Object
                        (
                            [Item] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [PartNumber] => 456-NM
                                        )

                                    [ProductName] => Power Supply
                                    [Quantity] => 1
                                    [USPrice] => 45.99
                                )

                        )

                )

            [2] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [PurchaseOrderNumber] => 99504
                            [OrderDate] => 1999-10-22
                        )

                    [Address] => Array
                        (
                            [0] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [Type] => Shipping
                                        )

                                    [Name] => Jessica Arnold
                                    [Street] => 4055 Madison Ave
                                    [City] => Seattle
                                    [State] => WA
                                    [Zip] => 98112
                                    [Country] => USA
                                )

                            [1] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [Type] => Billing
                                        )

                                    [Name] => Jessica Arnold
                                    [Street] => 4055 Madison Ave
                                    [City] => Buffalo
                                    [State] => NY
                                    [Zip] => 98112
                                    [Country] => USA
                                )

                        )

                    [Items] => SimpleXMLElement Object
                        (
                            [Item] => Array
                                (
                                    [0] => SimpleXMLElement Object
                                        (
                                            [@attributes] => Array
                                                (
                                                    [PartNumber] => 898-AZ
                                                )

                                            [ProductName] => Computer Keyboard
                                            [Quantity] => 1
                                            [USPrice] => 29.99
                                        )

                                    [1] => SimpleXMLElement Object
                                        (
                                            [@attributes] => Array
                                                (
                                                    [PartNumber] => 898-AM
                                                )

                                            [ProductName] => Wireless Mouse
                                            [Quantity] => 1
                                            [USPrice] => 14.99
                                        )

                                )

                        )

                )

        )

)


012345678910111213141516171819

Shipping : affiche l attribut

926-AA : affiche l attribut

898-AM : affiche l'attribut Computer Keyboard : affiche l'interieur de la balise Wireless Mouse : affiche l'interieur de la balise

On boucle des attributs

Shipping
Billing


On boucle des elements

Tai Yee
8 Oak Avenue
Old Town
PA
95819
USA
Cristian Osorio
456 Main Street
Buffalo
NY
98112
USA

par exemple je veux boucler toutes les adresses des clients du fichier xml et les afficher dans un tableau

On fait une boucle avec tous les clients avec xpath

Ellen Adams
USA
Tai Yee
USA
Cristian Osorio
USA
Cristian Osorio
USA
Jessica Arnold
USA
Jessica Arnold
USA

On fait une boucle avec tous les produits vendus et la quantité avec xpath

Lawnmower
1
Baby Monitor
2
Power Supply
1
Computer Keyboard
1
Wireless Mouse
1

On fait une boucle avec tous les clients avec un attribut Type='Shipping' avec xpath

Ellen Adams
Cristian Osorio
Jessica Arnold

Objectif : je veux boucler toutes les adresses des clients du fichier xml et les afficher dans un tableau

On fait une boucle avec tous les clients avec xpath

Ellen Adams
123 Maple Street
Mill Valley
CA
10999
USA
Tai Yee
8 Oak Avenue
Old Town
PA
95819
USA
Cristian Osorio
456 Main Street
Buffalo
NY
98112
USA
Cristian Osorio
456 Main Street
Buffalo
NY
98112
USA
Jessica Arnold
4055 Madison Ave
Seattle
WA
98112
USA
Jessica Arnold
4055 Madison Ave
Buffalo
NY
98112
USA

Ok et pour les afficher dans un tableau ordonné?

Tous les clients
Ellen Adams 123 Maple Street Mill Valley CA 10999 USA
Tai Yee 8 Oak Avenue Old Town PA 95819 USA
Cristian Osorio 456 Main Street Buffalo NY 98112 USA
Cristian Osorio 456 Main Street Buffalo NY 98112 USA
Jessica Arnold 4055 Madison Ave Seattle WA 98112 USA
Jessica Arnold 4055 Madison Ave Buffalo NY 98112 USA