mi hanno una struttura simile al seguente:XPath: Seleziona nodo, ma non specifici elementi figlio
<page id='1'>
<title>Page 1</title>
<page id='2'>
<title>Sub Page 1</title>
</page>
<page id='3'>
<title>Sub Page 2</title>
</page>
</page>
<page id='4'>
<title>Page 2</title>
</page>
ho bisogno di selezionare una pagina da Id ma se la pagina ha pagine discendenti Non voglio tornare quegli elementi, ma voglio gli altri elementi di quella pagina. Se seleziono Page 1 Voglio tornare il titolo, ma non le pagine figlio ...
//page[@id=1]
È possibile che questo mi viene pagina 1, ma come faccio a escludere le pagine secondarie? Inoltre, potrebbe esserci un numero arbitrario di elementi in una pagina.
//page[@id=1]/*[not(self::page)]
Ho trovato che questo mi ottiene i dati che voglio. Tuttavia, quei dati tornano come una matrice di oggetti con un oggetto per elemento e apparentemente esclude i nomi degli elementi ???. Sto usando PHP SimpleXML per quello che vale.
Buona domanda, +1. Vedi la mia risposta per una soluzione breve e semplice. :) –
"Tuttavia, tali dati tornano come una matrice di oggetti con un oggetto per elemento." Com'è diverso da ciò che vuoi/hai bisogno? – LarsH
I dati tornano in un formato diverso a seconda della query xpath, ottengo un array di SimpleXMLElement con una stringa singola in ognuno e mancano i nomi degli elementi. Il primo caso restituisce un singolo oggetto SimpleXMLElement con tutte le coppie di valori chiave previste. Non capisco perché, forse aprirò un'altra domanda. – Ben