PHP XML Datei bearbeiten

M3Y3R

Well-known member
ID: 336361
L
8 Mai 2006
1.608
60
Hallo,

ich habe folgendes Problem.
Auf meinem Server befindet sich eine XML-Datei mit folgender Struktur:

PHP:
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <ALERT>
    <ID>0</ID>
    <LEVEL>images/status/ok.png</LEVEL>
    <STATE>0</STATE>
    <DATE>24.02.2010 12:09:23</DATE>
    <INFO>INFOMESSAGE</INFO>
  </ALERT>
  <ALERT>
    ...
  </ALERT>
  .
  .
  .
</rss>

Nun versuche ich seit Tagen diese Datei auszulesen. Dies funktioniert auch zum Teil:
PHP:
$dom = DOMDocument::load($file);
$elements = $dom->getElementsByTagName('ALERT');
$elementsLength  = $elements->length;

for($i = 0; $i < $elementsLength; $i++){
   echo print_r($elements->item($i)->childNodes, true);
}

So werden mir alle Daten unterhalb des ALERT-Tags ausgegeben. Ich möchte nun aber erstmal eine Überprüfung einbinden, welche die ID des Alert-Tags abfragt und dann eine Überprüfung welche schaut ob sich das STATE-Tag geändert hat.

Die Vergleichsdaten befinden sich in einem Array:
PHP:
array(
0 => array('ID' => 0, usw.)
)

Irgendwie komme ich hier aber nicht weiter, da ich die überprüfung nicht eingebunden bekomme. Ich kann nicht explizit das ID-Feld das ALERT-Tags abfragen...

Wer kann mir dazu Hilfestellung geben?


Mit freundlichen Grüßen
Papenburger
 
nimm mal SimpleXML, ist einfacher zu bedienen

Ich denke nicht, dass das funktionieren wird, da ich nach der Überprüfung bei unterschiedlichem Inhalt von STATE den Wert ändern und das Dokument dann speichern will.

Mit SimpleXML müsste ich doch dann das ganze Dokument neu schreiben oder nicht ?
 
Man kann Dateien immer nur als Ganzes schreiben.*)

*) vereinfacht ausgedrückt

Ja das stimmt schon. Das was ich meine ist, dass DomDocument eine Methode saveXML() hat welche zum speichern einfach nur aufgerufen werden muss. Bei simpleXml geht das wahrscheinlich nicht und die Datei muss neu geschrieben werden...

So meine ich das... ;-)