le 03/06/2006 à 10:45
LupusMic
Salut,
J'ai un petit problème existentiel. J'ai un fichier XML qui sert de squelette. Dans celui-ci, je souhaite importer un fichier de données :
Pour ce faire j'ai le code suivant :
Malheureusement, je ne parviens pas à trouver une méthode directe pour importer le fichier de données dans le fichier structurel en ajoutant un namespace distinct pour chacun. C'est important pour éviter les conflits de balise car le fichier issu est ensuite transformé à l'aide d'un fichier XSLT.
Faut-il que je surcharge la fonction appendChild pour ajouter la prise en compte d'un namespace ?
Merci pour vos conseils.
J'ai un petit problème existentiel. J'ai un fichier XML qui sert de squelette. Dans celui-ci, je souhaite importer un fichier de données :
<?xml version="1.0"?>
<!DOCTYPE datas SYSTEM "../lib/xml/adventure.dtd">
<datas>
<adventure id="4" kind-id="1">
<title>Reflets d'acide.</title>
<synopsis></synopsis>
<critic></critic>
</adventure>
<kind id="1">
<title></title>
<content></content>
</kind>
</datas>
Pour ce faire j'ai le code suivant :
<?php
$wgDoc = DomDocument::load('page.wg.xml') ;
$advDoc = DomDocument::load('adventure.adv.xml') ;
@$wgDoc->validate() ;
@$advDoc->validate() ;
$finder = new DOMXPath($advDoc) ;
// extraction du premier nœud de données
$adv = $finder->evaluate('//adventure')->item(0) ;
$impAdv = $wgDoc->importNode($adv, true) ;
#var_dump($impAdv, $adv) ;
$menu = $wgDoc->getElementsByTagName('menu')->item(0) ;
// n'accepte malheuresement pas de namespace en argument :'(
$menu->appendChild($impAdv) ;
header('Content-type: text/xml') ;
echo $wgDoc->saveXML() ;
?>
Malheureusement, je ne parviens pas à trouver une méthode directe pour importer le fichier de données dans le fichier structurel en ajoutant un namespace distinct pour chacun. C'est important pour éviter les conflits de balise car le fichier issu est ensuite transformé à l'aide d'un fichier XSLT.
Faut-il que je surcharge la fonction appendChild pour ajouter la prise en compte d'un namespace ?
Merci pour vos conseils.