Cercare un nodo all'interno di un xml

di melixo il
3 risposte
Ciao a tutti
Cercando continuamente su google search node xml o cose simi, non riesco a capire se si possa cercare un nodo in xml senza dover usare un foreach di tutti i nodi
Se io ho
[CategoryList] => SimpleXMLElement Object
        (
            [Category] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                            [CategoryID] => 267
                            [CategoryLevel] => 1
                            [CategoryParentID] => 267
                        )

                    [1] => SimpleXMLElement Object
                        (
                            [CategoryID] => 45110
                            [CategoryLevel] => 2
                            [CategoryParentID] => 267
                        )

                    [2] => SimpleXMLElement Object
                        (
                            [CategoryID] => 45113
                            [CategoryLevel] => 3
                            [CategoryParentID] => 45110
                        )
io uso
$xml->CategoryList->Category->CategoryID
$xml->CategoryList->Category->CategoryParentID

ma se io volessi sapere che CategoryParentID ha il CategoryID 45113 oppure ricavare quel [2] partendo da CategoryID 45113
si può fare senza dover ciclare tutto?

3 Risposte

  • 1) c'e' un ""linguaggio di interrogazione/navigazione"" SPECIFICO per l'XML che si chiama ""XPath""
    https://en.wikipedia.org/wiki/XPat

    2) un XML e' una struttura STRETTAMENTE gerarchica: se SAI che una cosa sta su un ramo dell'albero, non e' SICURAMENTE necessario cercarla negli altri rami. Quindi puoi risparmiare un bel po'.

    3) SE NON SAI DOVE si trova qualcosa, va da se che devi cercarla fino a che non la trovi, e quindi, eventualmente, SCANDIRE TUTTI I NODI.
  • Ciao,
    devi ciclare un XML?

    Hai una struttura di questo XML?

    Mi sono fatto una funzione dove le passi: XML, suffisso, mainnode e un array con i childnode.

    Questa funzione cosa fa.... molto semplice ti restituisce un array in base alla sequenza dei nodi figli.

    Spero di essere stato chiaro... e se ti dovesse servire una mano... non c'è problema!

    Come dice migliorabile c'è l'xpath che utilizzo!

    Ciao e buona notte
Devi accedere o registrarti per scrivere nel forum
3 risposte