• Home
  • Forum
  • Fare Web
  • PHP

[SimpleXML] Problema rimozione nodo

  • Creatore Discussione Creatore Discussione alessandro1997
  • Data di inizio Data di inizio 18 Feb 2010

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 18 Feb 2010
  • #1
Ebbene sì, mi vedo costretto a chiedere aiuto anche io
Sto creando una chat con PHP ed XML, e, come mi immaginavo, ho incontrato grandi difficoltà lavorando con SimpleXML. Già ho dovuto fare una fatica immane per poter usare CDATA, e ora, come se non bastasse, mi si presenta quest'altro problema. Praticamente io ho bisogno di cancellare i messaggi più vecchi di 20 minuti, quindi ho creato questa funzione nella mia classe:
PHP:
private function _deleteExpired()
{
	$data = simplexml_load_file($this->db);
	$count = 0;
	
	foreach($data->message as $msg)
	{
		if(time() - $msg['timestamp'] > 60 * 20)
			unset($data->message[$count]);
		
		$count++;
	}
	
	$this->_overwriteData($data->asXML());
}
La funzione ajaxChat::_overwriteData si occupa solo di cancellare il file XML e crearne la nuova versione.

Ora, ho un problema. Praticamente non riesco a ciclare i messaggi da eliminare. Me ne elimina uno per volta, visualizzando comunque un warning "Node no longer exists". Ho provato a fare qualche prova ed effettivamente sembra che $data->message sia composto da un solo elemento, anche se, quando vado a ciclarlo, mi restituite anche gli altri. Mah...

Il file XML è una cosa di questo tipo:
HTML:
<?xml version="1.0"?>
<messages>
	<message id="1" timestamp="1266522045">
		<![CDATA[Scommetto che questo messaggio non verrà cancellato...]]>
	</message>
	<message id="2" timestamp="1266522057">
		<![CDATA[...o comunque verrà cancellato singolarmente, visualizzando un errore.]]>
	</message>
	<message id="3" timestamp="1266522072">
		<![CDATA[È praticamente tutta la giornata che sto su questo problema.]]>
	</message>
	<message id="4" timestamp="1266522077">
		<![CDATA[Avete qualche idea su come risolverlo?]]>
	</message>
	<message id="5" timestamp="1266522102">
		<![CDATA[Ah, piccolo off topic: borgo puzza.]]>
	</message>
</messages>

EDIT: Ho risolto il problema modificando la funzione così:
PHP:
private function _deleteExpired()
{
	$data = simplexml_load_file($this->db);
	
	while(time() - $data->message[0]['timestamp'] > 60 * 20)
		unset($data->message[0]);
		
	$this->_overwriteData($data->asXML());
}
Ma a me è andata bene, perché la prima occorrenza sarà sempre la più vecchia, quindi se non c'è bisogno di cancellare la prima non serve neanche farlo con la seconda. Ciò non toglie che la curiosità rimane... suggerimenti? Magari possiamo dare una mano a qualcuno che ha sputato sangue come me
 
Ultima modifica: 18 Feb 2010
Devi accedere o registrarti per poter rispondere.

Discussioni simili

S
SimpleXML - Inserire DTD e intestazione
  • sunlightbanana
  • 26 Apr 2016
  • PHP
Risposte
3
Visite
2K
PHP 28 Apr 2016
sunlightbanana
S
Accesso agli elementi <![CDATA[ ... ]]> di un file XML con SimpleXML e PHP
  • otto9due
  • 25 Apr 2015
  • PHP
Risposte
2
Visite
2K
PHP 29 Apr 2015
otto9due
M
simplexml
  • mirko78
  • 25 Feb 2015
  • PHP
Risposte
1
Visite
1K
PHP 25 Feb 2015
criric
A
SimpleXML e ciclo FOR
  • archema
  • 29 Dic 2012
  • PHP
Risposte
8
Visite
3K
PHP 31 Dic 2012
Nefyt
N
A
Aiuto - SimpleXML
  • antonio885
  • 17 Nov 2009
  • PHP
Risposte
4
Visite
2K
PHP 19 Nov 2009
alessandro1997
J
[XML simplexml] Problemi con caratteri accentati
  • joint
  • 8 Apr 2009
  • PHP
Risposte
2
Visite
3K
PHP 8 Apr 2009
joint
J
S
SimpleXML - Come stampare gli indici?
  • Stenan
  • 15 Apr 2008
  • PHP
Risposte
2
Visite
2K
PHP 15 Apr 2008
Stenan
S
G
problema bordo trasparente file
  • GIULIA CERRY
  • 20 Giu 2025
  • Photoshop
Risposte
1
Visite
111
Photoshop 20 Giu 2025
GIULIA CERRY
G
Problema scheda di rete: "Internet non disponibile"
  • felino
  • 21 Gen 2025
  • Windows e Software
Risposte
1
Visite
392
Windows e Software 28 Gen 2025
alainscilly
A
Problema in Shopify con Pixel Facebook
  • voldemort
  • 27 Mag 2024
  • E-Commerce
Risposte
1
Visite
2K
E-Commerce 27 Mag 2024
m.pittini
M
F
Problema pulsante cerca record su access
  • futty71
  • 20 Apr 2024
  • Database
Risposte
0
Visite
2K
Database 20 Apr 2024
futty71
F
I
Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz-
  • Ikon
  • 25 Mar 2024
  • HTML e CSS
Risposte
0
Visite
1K
HTML e CSS 25 Mar 2024
Ikon
I
K
Problema form update
  • Kiko74b
  • 22 Giu 2023
  • PHP
Risposte
2
Visite
1K
PHP 3 Ott 2023
WEBLEADERS
W
O
problema con dvr dahua xvr5116
  • oky74
  • 11 Mar 2023
  • IP Cam e Videosorveglianza
Risposte
0
Visite
2K
IP Cam e Videosorveglianza 11 Mar 2023
oky74
O
S
Problema nel ciclare un json
  • Soulfearor
  • 5 Mar 2023
  • Javascript
Risposte
0
Visite
3K
Javascript 5 Mar 2023
Soulfearor
S
G
Problema con Xampp
  • GreatOtaku
  • 5 Mar 2023
  • Web Server
Risposte
1
Visite
1K
Web Server 6 Mar 2023
GreatOtaku
G
Problema con miniature comandi
  • andrea barletta
  • 27 Feb 2023
  • Photoshop
Risposte
0
Visite
1K
Photoshop 27 Feb 2023
andrea barletta
I
problema con alice
  • ilprincipiante
  • 10 Feb 2023
  • Posta Elettronica
Risposte
0
Visite
1K
Posta Elettronica 10 Feb 2023
ilprincipiante
I
K
Problema Inner join
  • Kiko74b
  • 8 Feb 2023
  • PHP
Risposte
1
Visite
1K
PHP 8 Feb 2023
Kiko74b
K
F
firefox problema http
  • frankz
  • 30 Gen 2023
  • Linux e Software
Risposte
0
Visite
2K
Linux e Software 30 Gen 2023
frankz
F
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?