Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema con Php e XML

  1. #1

    Problema con Php e XML

    ciao a tutti ...vi espongo il mio problema e vi ringrazio anticipatamente per lgi aiuti che arriveranno.
    Per popolare le pagine di un sito devo leggere dei dati da dei file xml.

    Per farlo uso il seguente codice:

    $xml = simplexml_load_file("file_xml/news_nuoto.xml");

    ..............................................
    questi puntini stanno al posto di codice che non comporta errori
    ................................................

    for($y=$min;$y<=$max;$y++)
    {
    $idx=$xml->xpath("/notizie/news[@id=".$y."]");
    $i=1;
    foreach($idx as $idy)
    {
    echo <<<EOFORM
    <tr>
    <td width="10%">[img]immagini/news.gif[/img]</td>
    <td width='80%' align="left">{$idy->titolo}</td>
    <td width='10%' align='right'><div class="contenuto">{$idy->data}</div></td>
    </tr>
    EOFORM;
    }
    }



    Ho provato a fare una prova di pubblicazione del sito su altervista e quando vado ad aprire la pagina mi da il seguente errore:

    Call to a member function xpath() on a non-object in /membri/brinellaprova/news_n.php on line 57

    Sapete come posso risolvere il problema?

    La struttura del file xml e' la seguente:

    <notizie>
    <news id="1">
    <id></id>
    <titolo></titolo>
    <data></data>
    <corpo></corpo>
    </news>
    <news id="2">
    <id></id>
    <titolo></titolo>
    <data>15/05/2011</data>
    <corpo></corpo>
    </news>
    </notizie>

  2. #2
    Ciao ti faccio alcune domande per capire meglio il problema se si può risolvere:

    all'interno del file XML è presente il tag <?xml version="1.0" encoding="utf-8"?> all'inizio?? perchè da quello che hai postato non sembra

    l'errore sembra la chiama al function/metodo xpath() ... poichè può essere usato per varie cose, relativo al XML, puoi postare il Codice??...più precisamente la riga 57 ( naturalmente qualche riga prima e qualcuna dopo perchè l'errore può trovarsi anche prima della riga indicata dal log ).


    Saluti SuperSavio

  3. #3
    all'interno del file XML è presente il tag <?xml version="1.0" encoding="utf-8"?> all'inizio??
    SI E' PRESENTE

    dall'errore sembra che il php installato non supporti la funzioni xpath()...ho provato a vedere che versione e' installata e mi dice php 5.2.1......il metodo xpath() e' supportato dalla versione 5.2 e successive percui dovrebbe essere supportata

    Il codice e' il seguente:


    $xml = simplexml_load_file("file_xml/news_nuoto.xml");

    $p = new Paging; # istanzo la classe per l'impaginazione
    # creo l'impaginazione
    $max = 12; # numero massimo di risultati per pagina

    $nodi = count($xml->xpath("/notizie/news")); QUESTA E' LA RIGA 57
    $inizio = $p->paginaIniziale($max);
    $pagine = $p->contaPagine($nodi,$max);

    if(isset($_GET['p']) && $_GET['p']==1)
    {
    $min=1;
    $max=12;
    }
    if(isset($_GET['p']) && $_GET['p']==2)
    {
    $min=13;
    $max=13;
    }

    for($y=$min;$y<=$max;$y++)
    {
    $idx=$xml->xpath("/notizie/news[@id=".$y."]");
    $i=1;
    foreach($idx as $idy)
    {
    echo <<<EOFORM
    <tr>
    <td width="10%">[img]immagini/news.gif[/img]</td>
    <td width='80%' align="left">{$idy->titolo}</td>
    <td width='10%' align='right'><div class="contenuto">{$idy->data}</div></td>
    </tr>
    EOFORM;
    }
    }

    $lista = $p->listaPagine($_GET['p'], $pagine); # mostro i numeri delle pagine
    $navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine); # mostriamo il navigatore Precedente/Successiva

  4. #4
    la riga incriminata...ovvero la 57....del codice postato a quale corrisponde???

  5. #5
    $nodi = count($xml->xpath("/notizie/news"));

  6. #6
    se togli $xml->xpath("/notizie/news") dalla funzione count continua a darti errore?

  7. #7
    si purtroppo......se continua a non funzionare devo riscrivere tutto da capo in un altro modo..il fatto e' che dietro c'e' una logica che comprende anche la paginazione e riscrivere tutto sarebbe una grande rottura!

  8. #8
    non ne sono sicuro ma prova così
    Codice PHP:
    foreach ($xml as $notizie) {
        
    $nodi $notizie->count() + $nodi;


  9. #9
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Consultate il manuale online a http://www.php.net/manual/en/book.xmlreader.php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.