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-ID: 126900

Url: https://administrator.de/forum/problem-beim-hinzufuegen-eines-nodes-in-einer-rss-xml-datei-126900.html

Ausgedruckt am: 23.12.2024 um 07:12 Uhr

masterG
masterG 12.10.2009 um 13:18:06 Uhr
Goto Top
Vielleicht hilft dir das:
RSS mit MySQL Abfrage
nxclass
nxclass 12.10.2009 um 15:04:40 Uhr
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.
Closed
Closed 12.10.2009 um 15:44:41 Uhr
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
Closed
Closed 12.10.2009 um 16:49:59 Uhr
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
nxclass
nxclass 12.10.2009 um 19:23:26 Uhr
Goto Top
die Befehle sind ja wie die in Javascript ( http://de.selfhtml.org/javascript/objekte/node.htm )