begin process at 2012 05 31 04:22:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

PHP DOM. Generation d'un ficier XML depuis un autre fichier XML


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PHP DOM. Generation d'un ficier XML depuis un autre fichier XML

dimanche 20 juin 2010 à 18:21:21 | PHP DOM. Generation d'un ficier XML depuis un autre fichier XML

nurty

Hello la communauté,

J'ai quelque problème pour générer un fichier XML avec une partie d'un autre fichier XML.
Je m'explique :
Je récupère un fichier XML, je le parse pour en récupérer une certaine partie.
Je crée un nouveau fichier XML avec un structure de base et ensuite j'essaie d'ajouter à ce nouveau fichier les noeuds que j'ai récupérer sur le premier fichier.
Voici mon code :
Code PHP :
<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
*/
?>
<FORM method="POST" action="#" ENCTYPE="multipart/form-data">
    <INPUT type=hidden>
    <INPUT type=file name="uploadedGml">
    <INPUT type=submit value="Envoyer">
</FORM>

<pre><?  print_r($_FILES); ?></pre>

<?
if ($_FILES['uploadedGml']['error']) {
    switch ($_FILES['uploadedGml']['error']) {
        case 1: // UPLOAD_ERR_INI_SIZE
            echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
            break;
        case 2: // UPLOAD_ERR_FORM_SIZE
            echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
            break;
        case 3: // UPLOAD_ERR_PARTIAL
            echo "L'envoi du fichier a été interrompu pendant le transfert !";
            break;
        case 4: // UPLOAD_ERR_NO_FILE
            echo "Le fichier que vous avez envoyé a une taille nulle !";
            break;
    }
}
else {
    // $_FILES['nom_du_fichier']['error'] vaut 0 soit UPLOAD_ERR_OK
    // ce qui signifie qu'il n'y a eu aucune erreur
}
//on charge le fichier uploader
$dom = new DomDocument();
$dom->load($_FILES['uploadedGml']['tmp_name']);
$racine = $dom->documentElement;
echo $racine->nodeName;
//on récupère les propriété géométriques
$tagName = "geometryProperty";
$geoms = $dom->getElementsByTagName($tagName);

$geometryNodes;
$i = 0;
foreach($geoms as $geom){
    $geometryNodes[$i]=$geom;
    $i++;
}

//on récupère les textes de labels
$tagName = "";


//création du document de sortie
$outputDom = new DOMDocument();

$rootName = "JPalLayer";
$elem = $outputDom->createElement($rootName);
$outputDom->appendChild($elem);

$tags = array("JPalLayer","JPalFeatureCollection","gml:FeatureCollection","gml:featureMember","ogo:JPalFeature");

foreach($tags as $tagName){
    $elem = createChild($outputDom, $elem, $tagName);
}

$elems = $outputDom->getElementsByTagName("ogo:JPalFeature");
$i = 0;
//on ajoute la propriete The geom
foreach($elems as $jPalfeature){
    $theGeom = $outputDom->createElement("the_geom");
    $node = $geometryNodes[$i];

    $theGeom->appendChild($node);
    $i++;
    $jPalfeature->appendChild($theGeom);
}

$chaineXML = $outputDom->saveXML();

echo($chaineXML);


$handle = fopen("upl/superTest.xml","w+");
$outputDom->save("upl/superTest.xml");

function createChild($dom,$parent,$childName){
    $child = $dom->createElement($childName);
    $parent->appendChild($child);
    return $child;
}
?>


ET voici l'erreur que j'ai :

Uncaught exception 'DOMException' with message 'Wrong Document Error' in /var/www/requestBuilder/index.php:76 Stack trace: #0 /var/www/requestBuilder/index.php(76): DOMNode->appendChild(Object(DOMElement)) #1 {main} thrown in /var/www/requestBuilder/index.php on line 76

Je comprend bien que les n½uds que j'essaie d'ajouter au document proviennent d'un autre document de base... Mais y a-t-il un moyen de résoudre ce problème.

Merci d'avance!


Cette discussion est classée dans : fichier, php, xml, dom, outputdom


Répondre à ce message

Sujets en rapport avec ce message

Php et excel ???? [ par Adagyo ] Salut @ tous,Je cherche un moyen de faire communiquer le contenu d'une base MySQL avec un tableau Excel.J'ai pensé à passer par du XML (je fait une re xml dans un tableau php! SVG à la clé :) [ par jed35 ] Bonjour je débute en php et évidemment j'ai un probleme. Je cherche à placer des données (qui se trouvent dans un fichier xml) dans un tableau php.voi Xml et Php [ par davdou ] Bonjour,Je travaille actuellement sur un LMS Open-Source (Ganesha).Un module d'importation de formation dans la plate-forme doit parser un fichier Xml xml(genere par excel) -> php [ par mic79 ] bjour,je dispose d'un fichier xml généré sous excel et je souhaite récupérer les données du fichier excel dans ma page php.connaissez vous une bibliot Question XML [ par orsam ] Bonjour à tous,Bon je commence juste à "maitriser" le php, mais je cherche maintenant une petite doc ou un petit exemple, pour l'utilisation de fichie Encore un pb de php-xml... [ par c_siwo ] Bonjour,je souhaiterai envoyer des données textes vers un fichier XML via PHP pour qu'au final j'obtienne ceci dans le fichier XML:    09:00 - alpha - Génération de balise d'un fichier xml par PHP [ par wettanam ] exemple du fichier xmlOlivierMelangerOlivM@yahoo.frJ'aimerai pouvoir faire des modifications au niveau des balises&nbsp Traitement php sur un portion de fichier xml !!!! [ par charloteuf ] Hello,J'ai bien lu les sujets précédents, mais je me demande si le parsing xml est possible pour ma méthode.En fait j'ai un fchier xml de 15000 ligne, Utiliser un fichier xml, avec php, pour un album photo [ par lulusurf ] Bonjours à tous j'ai besoin de votre aide ! J'ai un album en flash, avec un fichier xml qui contient les infos pour les photos (ci-dessous). Mais le XML ou MySQL [ par jipe32 ] Bonjour à tous,je conçois des sites pour des gens et je voudrais afficher de la publicité sur ceux-ci, mais sans passer par AdSense ou autre. Donc je


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales