Knoten aus XML mit DOM kopieren

Telefisch

Mitglied
Hallo Forum...
ich habe ein Dokument mit jeder Menge Knoten, die wiederum mehrere Child-Knoten haben.
Jetzt muss ich einige dieser Knoten vollständig in ein neues Dokument kopieren.
Am Inhalt soll im Grunde nichts verändert werden.
Geht das?
Oder muss ich jeden Knoten nach Attributen und Child-Knoten durchsuchen und jedes Element einzeln übertragen?

PHP:
	// Datenstamm öffnen (Vorlagedatei)
	$xmlDoc=new DOMDocument();
	$xmlDoc->load($importfile);

$searchNodes = $xmlDoc->getElementsByTagName(NODE_ROOT);
foreach($searchNodes as $searchNode)
{
	//neues Export-File mit Root-Knoten erzeugen
	$domExport = new DOMDocument($xmlVersion,$xmlCoding);
	$root = $domExport->createElement('partsmanagement');
	$root = $domExport->appendChild($root);
	$root -> setAttribute('count',$partsCount+1);
	$root -> setAttribute('length-unit',utf8_decode($searchNode->getAttribute('length-unit')));
	$root -> setAttribute('type',utf8_decode($searchNode->getAttribute('type')));
	$root -> setAttribute('build',utf8_decode($searchNode->getAttribute('build')));
	$root -> setAttribute('database','generated.mdb');
}
	$domExport->save($expFile);

// Alle Stammdaten durchsuchen nach bestellten Artikeln
$searchNodes = $xmlDoc->getElementsByTagName(NODE_NAME);
foreach($searchNodes as $searchNode)
{
	$valueAccID=utf8_decode($searchNode->getAttribute('P_ARTICLE_PARTNR'));
	foreach($dlParts as $myPart)
	{
	// In Bestellung suchen ob Artikel erwünscht
	if($myPart == $valueAccID)
		{
		//Artikel gefunden, Export einleiten
		echo 'Export: '.$myPart.'<br>';
		//hier weiss ich nicht weiter
		}
	}
}
//searchnodes zerstören
unset($searchNodes , $searchNode);

...und wo wir grade dabei sind...
Gibt es eine Möglichkeit die foreach-Schleife vorzeitig zu verlassen, ähnlich exit for in VB?

Für schnelle Hilfe bin ich schon jetzt dankbar,
Gruss Telefisch
 
...habs selbst dann doch gefunden...
PHP:
			$newNode=$domExport->importNode($searchNode,TRUE);
			$domExport->appendChild($newNode);
			$domExport->save($expFile);


Bleibt noch die Frage nach dem exit for...
Weiss da jemand Rat?

Gruss Telefisch
 
Zurück