Ricerca su file XML

FabrizioLodesani

Nuovo Utente
30 Ago 2012
3
0
0
Stavo cercando un metodo per fare ricerche su di un file XML con PHP
Ho letto diversi tutorial ma non ho trovato nulla che facesse al caso mio.

Mi spiego: ho un XML con i i titoli, l'anno, il genere, il regista, il produttore, un numero progressivo attribuito da me e gli attori principali di tanti film.

Devo utilizzare una stringa per fare una ricerca:
volevo dare la possibilita' di effettuare tale ricerca non su tutto il documento ma solo sul titolo o sul genere o sugli attori e cosi' via.

Se io apro il file XML con:

mioXML = simplexml_load_file('mio.xml');

poi posso iterare su un determinato nodo solo se conosco il nome del nodo:
es: foreach ($mioXML->Title as $item) {.....}

se invece io volessi iterare su un nodo (fra quelli esistenti) scelti dall' utente?
es: volgio cercare 'Di Caprio' solo fra il nodo <ATTORI> e non su tutti gli altri..
come faccio ad usare una variabile al posto di Title nell' esempio precedente?



Ho sperimentato anche xpath ma non sembra fare al caso mio.
Ad esempio se ricerco usando:
$risult=mioXML->xpath('//Titolo') - anche qui non so come utilizzare una variabile (??)

mi ritrovo con un array che posso scorrere e fino a qui ci siamo ma uan volta individuato la corrispondenza tra la stringa e il valore da cercare (ad esempio 'Sogni' tra i titoli dei nodi <TITOLO>) quello che a me serve e' trovare il numero progressivo che gli ho attribuito e usando xpath credo di non poterlo recuperare dall' array? Giusto?

Qualceh suggerimento su come poter operare?

Come fareste voi?

Grazie in anticipo
Fabrizio.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
come faccio ad usare una variabile al posto di Title nell' esempio precedente?
ma non funziona cosi?
PHP:
$nodo = "Title";
if (isset($_POST['nodo'])) {
    $nodo = $_POST['nodo'];
}
foreach ($mioXML->$nodo as $item) {
 // ........
}
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Con l'operatore ternario:
PHP:
$nodo = isset($_POST['nodo']) ? $_POST['nodo'] : 'Title';
E poi:
PHP:
foreach ($mioXML->$nodo as $item) {
    // ...
}
Oppure con XPath:
PHP:
$result = $mioXML->xpath("//{$nodo}");
Ti consiglio inoltre di controllare che il valore passato dall'utente sia un nome di nodo valido.
 
Discussioni simili
Autore Titolo Forum Risposte Data
U PHP creare un file excel dopo ricerca nel DB PHP 0
F Funzione Glob - ricerca file contenente una parola PHP 1
L colorare variabile ricerca file testo PHP 2
L Ricerca in file txt PHP 1
T.W. Aiuto con ricerca nominativi in un file CSV PHP 2
T.W. Aiuto Per Ordinare Risultati Ricerca Da File CSV PHP 2
M Ricerca dati nel file txt Java 16
Monital Ricerca stringa e sovrascrittura file txt PHP 2
F access ricerca record con apostrofo. MS Access 0
C Ricerca Prodotti Woocommerce Javascript 0
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
G Menù a tendina di ricerca con query PHP 1
R Problema query con ricerca id numerico PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
F Visualizzazione motore di ricerca SEO e Posizionamento 2
B Stringa sql per ricerca su più campi Database 1
P Ricerca campo data PHP 1
L titolo del sito nella pagina di ricerca di google SEO e Posizionamento 2
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
L Ricerca valore mysql e incremento PHP 73
E Problema motore di ricerca FULL_TEXT PHP 0
motleyrulez Ricerca filtro con Ajax PHP 1
Shyson [CSS] Posizionare casella di ricerca HTML e CSS 3
P Query di ricerca profonda MySQL 0
T Query per ricerca ritardo evento MS Access 7
B Campo ricerca domini HTML e CSS 4
V Ricerca volontari questionario tesi - Ricambio Offerte e Richieste di Lavoro e/o Collaborazione 0
L Ricerca sviluppatori PHP tempo indeterminato Milano Offerte e Richieste di Lavoro e/o Collaborazione 0
S [PHP] Creare collegamento filtri di ricerca al database PHP 6
L [PHP] Ricerca su search bar esterna PHP 1
D Ente di Formazione accreditato in Regione Lazio ricerca Front End Developer Offerte e Richieste di Lavoro e/o Collaborazione 3
N [WordPress] Ricerca tema WordPress 6
Alex_70 [PHP] Ricerca con risultati cliccabili PHP 21
Federico.Marcelo Alla ricerca di scrittori post guest Offerte e Richieste di Lavoro e/o Collaborazione 0
ANDREA20 [PHP] motore di ricerca nel sito PHP 11
O [PHP] Ricerca record tramite post PHP 7
GraceHawk [MS Access] Findfirst per ricerca record MS Access 1
T [PHP] Ricerca nel database PHP 2
A [Javascript] Mostrare un marker se è vicino al risultato di ricerca con google maps Javascript 3
V Semplice barra di ricerca con filtro categorie prodotti E-Commerce 0
A Ricerca con collegamento in altro sito web Discussioni Varie 0
C [PHP] Ricerca multipla, evitare if PHP 4
F [WordPress] Plugin Ricerca per e-commerce Woocommerce WordPress 1
M [OFFRO][RETRIBUITO] Milano IT Consulting SRL - Ricerca 1 Consulente PHP Offerte e Richieste di Lavoro e/o Collaborazione 0
D [ASP] Motore di ricerca interno su 2 tabelle Classic ASP 3
A [MySQL] Ricerca in PMA MySQL 0
andreas88 Da .htm a .php, perdo le mie posizioni su Google ricerca? SEO e Posizionamento 9
P Google risultati di ricerca inappropriati SEO e Posizionamento 1
Emix [PHP] Ricerca e modifica su due tabelle PHP 26

Discussioni simili