Bonjour,

A partir de 2 fichier, je voudrais les "concatener" en ajoutant le contenu de mon 2eme fichier dans le premier (a un endroit bien spécifique).

Un exemple plus parlant...

1er fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<article>
  ...
   <liens_objets_metiers>
      <lien_objet_metier type="" nature="" ref="/tests/fiches/ficheMediaExemple.xml">
         <position/>
      </lien_objet_metier>
   </liens_objets_metiers>
  ...
</article>
2ème fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?xml version="1.0" encoding="UTF-8"?>
<fiche_media>
  ...
</fiche_media>
... et ce que je voudrais au final :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<article>
  ...
   <liens_objets_metiers>
      <lien_objet_metier type="" nature="" ref="/tests/fiches/ficheMediaExemple.xml">
         <position/>
 
          <fiche_media>
            ...
          </fiche_media>
 
      </lien_objet_metier>
   </liens_objets_metiers>
  ...
</article>

... et puis le morceau de code que j'ai écris, mais qui ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
$xml_article_filename = 'ArticleExemple.xml';
 
 
$dom_article = new DomDocument();
$dom_article->load($xml_article_filename);
 
$article_lien_objet_metier_nodes = $dom_article->getElementsByTagName('lien_objet_metier');
foreach($article_lien_objet_metier_nodes as $article_lien_objet_metier_node)
{
  $xml_fiche_media_filename = $article_lien_objet_metier_node->attributes->getNamedItem('ref')->value;
  $xml_fiche_media_filename = substr(strrchr($xml_fiche_media_filename, '/'), 1);
 
  $dom_fiche = new DomDocument();
  $dom_fiche->load($xml_fiche_media_filename);
 
  $fiche_media_nodes = $dom_fiche->getElementsByTagName('fiche_media');
  foreach($fiche_media_nodes as $fiche_media_node)
  {
$article_lien_objet_metier_node->appendChild($dom_fiche->documentElement); // $fiche_media_node);
  }
}
 
$dom_article->save('test.xml');
... l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Fatal error: Uncaught exception 'DOMException' with message 'Wrong Document Error' in C:\wamp\www\test\concat_artiche_fiche.php:21 Stack trace: #0 C:\wamp\www\test\concat_artiche_fiche.php(21): DOMNode->appendChild(Object(DOMElement)) #1 {main} thrown in C:\wamp\www\test\concat_artiche_fiche.php on line 21