Je me rends compte que ma requête n'est pas possible avec SimpleXML - ce que j'ai compris. Voici ce que j'ai essayé:Déplacement d'un nœud d'un document XML vers un autre en utilisant SimpleXML
$newXML = simplexml_load_file($filePath);
$domNewXML = dom_import_simplexml($newXML);
$domItem = dom_import_simplexml($items[$itemQty]); <-- item I want to move
$domNewItem = $domItem->cloneNode(true);
$newNode = $domNewXML->importNode($domNewItem, true);
$domNewXML->getElementsByTagName('list')->item(0)->appendChild($newNode);
Je me rends compte des erreurs de code sur la ligne 5, parce que importNode est fonction du document dom, pas l'élément dom, mais comment puis-je obtenir le document de dom pour effectuer cette étape ?
Est-ce que je vais dans ce sens? Dans le grand ordre des choses, j'ai un fichier XML avec au moins 10 nœuds, chaque jour un travail CRON vérifie s'il y a plus de 10 nœuds et si c'est le cas, il est censé déplacer le nœud du fichier courant dans un fichier d'archive. J'ai pensé que je "déplacerais" le noeud en le copiant dans le fichier d'archive et en le supprimant du fichier d'origine.
Merci pour toute aide!
Je pensais que vous ne pouviez pas les noeuds via unset simpleXML? Quelle est la signification du fragment? Votre réponse est très utile d'ailleurs - merci! – NightHawk
Est-ce que ça va s'ajouter après le bon noeud? – NightHawk
Qu'est-ce qui vous a donné l'impression que vous ne pouvez pas supprimer les nœuds/éléments via SimpleXML? La chose "intéressante" à propos du fragment est que vous n'avez pas à l'analyser quand vous ajoutez un élément. C'est bon pour les grands documents et les applications gourmandes en performance. Mais si vous avez choisi cette technique, essayez d'abord si et comment votre application client résout l'entité externe (par exemple firefox ne le fait pas). – VolkerK