Share |

mercoledì 13 gennaio 2010

XPath: a cosa serve XPath

XPath (ovvero percorso XML) è un linguaggio interpretato utilizzato per estrapolare informazioni dai nodi di un documento XML.

XPath è utilizzato per navigare attraverso gli elementi e gli attributi di un documento XML.

Le relazioni tra i nodi, all'interno del documento XML, sono descritte metaforicamente alla stessa maniera di una famiglia:

  • Parent;
  • Children;
  • Siblings;
  • Anchestor;
  • Descendants;

Parent

Tutti gli elementi (esclusa la radice), attributi o nodi-testo, hanno un genitore. Per esempio:

<pianta>
  <rami>
    <ramo></ramo>
  </rami>
</pianta>

L'elemento Parent del nodo '<ramo>' è '<rami>' che a sua volta ha come nodo parent '<pianta>'.

Children

I nodi di tipo Element possono avere uno o più figli. Considerando l'esempio precedente, l'elemento '<ramo>' è Children di '<rami>' che a sua volta è children di '<pianta>'.

Siblings

I nodi di tipo Element hanno una relazione detta Sibling solo se esistono altri nodi di pari livello con lo stesso parent. Nell'esempio seguente sono tra loro sibling gli elementi '<ramo>' e '<ramoscello>':

<pianta>
  <rami>
    <ramo>
      <ramoscello />
    </ramo>
  </rami>
</pianta>

Anchestors

Sono Anchestors (o ascendenti) di un nodo tutti gli elementi che lo precedono, radice compresa. Nel seguente esempio:

<pianta>
  <rami>
    <ramo />
  </rami>
</pianta>

Sono anchestors di '<ramo>' gli elementi '<rami>' e '<pianta>'.

Descendants

Sono Descendants (o discendenti) di un nodo tutti gli elementi che esso racchiude. Nel seguente esempio:

<pianta>
  <rami>
    <ramo>
      <ramoscello />
    </ramo>
  </rami>
</pianta>

Sono descendants di '<pianta>' gli elementi '<rami>', '<ramo>' e '<ramoscello>'.

Conclusioni

Anche se apparentemente ciò che abbiamo visto sembra molto banale, imparare e comprendere le tipologie di relazioni possibili tra gli elementi di un documento XML é fondamentale per poter sfruttare la potenza e la modalità di funzionamento di XPath.

Alla prossima,
MA.

0 commenti:

Posta un commento

Non ti è chiaro qualcosa?
No problem, posta il tuo dubbio ;)

..... e ricordati di firmarlo!