closed
Goto Top

Problem beim hinzufügen eines Nodes in einer RSS-XML-Datei

Hi,

ich hab ein kleines Problem beim erstellen eines RSS-Feeds (bzw. stehe gerade auf dem Schlauch). Da ich nicht jedesmal eine Datenbankabfrage machen möchte und die xml-Datei für den RSS-Feed neu schreiben möchte, würde ich gerne ein Node zu einer bestehenden XML-Datei hinzufügen. Das Problem ist nur, dass ich mich recht schlecht mit PHP und XML auskenne. Ich müsste also wissen, wie ich nach einem bestehenden Node suchen und ihm Childs anfügen kann.

Derzeitiger Quellcode
			$xml = new DOMDocument('1.0', 'UTF-8');  
   			$xml->load('path/to/xml');  
   			$xml->formatOutput = true;
   			$xml->preserverWhiteSpace = FALSE;
   			
 		    $item = $xml->createElement('item');  
/******* Diese Zeile müsste durch eine sinnvolle Rückgabe des channel-nodes modifiziert werden *********/
		    $xml->documentElement->appendChild($item);
		    
		/* einige Zeilen, die den Rest des item-Elements befüllen */

	     	 $xml->save('path/to/xml');  

Hab leider schon gegoogelt, kann allerdings nicht die genaue Methode finden.

Sollte sicherlich kein Problem sein für einen erfahrenen Programmierer....


Danke im voraus

Content-Key: 126900

Url: https://administrator.de/contentid/126900

Printed on: April 16, 2024 at 20:04 o'clock

Member: masterG
masterG Oct 12, 2009 at 11:18:06 (UTC)
Goto Top
Vielleicht hilft dir das:
RSS mit MySQL Abfrage
Member: nxclass
nxclass Oct 12, 2009 at 13:04:40 (UTC)
Goto Top
Ich benutze das XMLReader und XMLWriter Objekt ( http://php.net/manual/de/book.xmlreader.php ) für sowas.

Habe mir da mal eine Klasse geschrieben die das XML in ein Array importiert und nach Manipulation wieder exportiert. Wenn Du willst, poste ich diese noch.
Member: Closed
Closed Oct 12, 2009 at 13:44:41 (UTC)
Goto Top
@masterG: Vielen Dank für den Link. Allerdings habe ich dies schon selbst programmiert. Im Endeffekt genauso ähnlich. Das Problem ist aber, dass ich in einer bestehenden XML-Datei etwas hinzufügen möchte.

@nxclass: Vielen Dank werde mir das mal anschauen.

Im Endeffekt brauche ich nur die Methode, die dafür sorgt, dass ich im Element "channel" bin und dort ein "appendChild" machen kann
Member: Closed
Closed Oct 12, 2009 at 14:49:59 (UTC)
Goto Top
nach längerer Sucherei hab ich es geschafft face-smile

hier die Lösung:

 		    $item = $xml->createElement('item');  
		    $xml->getElementsByTagName('channel')->item(0)->appendChild($item);  

manchmal liegt es näher als man denkt....

Danke nochmals für die Hilfe
Member: nxclass
nxclass Oct 12, 2009 at 17:23:26 (UTC)
Goto Top
die Befehle sind ja wie die in Javascript ( http://de.selfhtml.org/javascript/objekte/node.htm )