Hi!
Wobei 0 und 1 für die beiden "item"s stehen.
eben, also richtig vermutet: ein indiziertes Array. Das Einfügen von neuen Elementen dürfte also nicht so schwierig sein...
Naja, es ist wie gesagt so eine besondere Datenstruktur. Lesen und Maipulieren ist kein Problem, aber wie es aussieht - hinzufügen wohl schon.
Allerdings haben diese Elemente noch Attibute, id und public. Diese werden hier nicht dargestellt, sind aber vorhanden, siehe Code im 1. Posting.
das scheint mir das eigentliche Problem.
ja.
Wie bekommt man die Attribute in so ein neues Element rein? Aber die mußt Du doch auch irgendwie auslesen können, sonst sind die ja witzlos. Wenn Du z.B. sowas auslesen kannst:
<?
echo $xml->item[0][id];
oder
echo $xml->item[0]->getAttribut('id');
?>Ausgabe: 32
(so'ne ähnliche Abfrage machst du doch auch im Ausgangsposting: echo $news->title."($news[id])\n";)
ja,
(string) $xml->item[0]['id']
Wenn ich jetzt mal folgendes probiere:
$xml = simplexml_load_file($newsfile);
$xml->item[1]->title='hallo';
echo $xml->asXML();
erhalte ich:
<?xml version="1.0" encoding="ISO-8859-1"?>
<news>
<item id="32" public="1">
<title>news #32</title>
<description>Newstext...</description>
<timestamp>1234567890</timestamp>
<author>Andreas Korthaus</author>
</item>
<item id="31" public="0">
<title>hallo</title>
<description>Newstext....</description>
<timestamp>1234567890</timestamp>
<author>Andreas Korthaus</author>
</item>
</news>
Und wenn ich dann folgendes probiere:
$xml = simplexml_load_file($newsfile);
$xml->item[2]->title='hallo';
echo $xml->asXML();
erhalte ich:
Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference
Wird dann wohl nur per DOM gehen.
Dann kannst Du es ja auch verändern.
Woraus schließt Du das?
Und das könnstest Du mit den neu eingefügten Elementen _nachträglich_ machen. Nur mal so ne Idee, hehe...
Ich wüßte nicht wie das funktionieren könnte.
Außerdem kann ich mich irgendwie nicht so richtig mit XML als Format für derartige Datenhaltung (das gilt auch für dieses Forum ;-)) anfreunden. (und das trotz
http://www.amazon.de/exec/obidos/ASIN/3772360203/ ;-))
Grüße
Andreas
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/