Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FONCTIONS DE BASE POUR GÉNÉRER DU XML EN PHP


Information sur la source

Catégorie :Xml Classé sous : php, xml, string, tag, value Niveau : Débutant Date de création : 10/12/2007 Date de mise à jour : 10/12/2007 12:03:59 Vu : 8 447

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

J'avais besoin d'extraire beaucoup de données d'une base et de générer un flux xml en retour (pratique pour la mise en forme) et comme il ne faut surtout pas se planter dans l'écriture d'un xml, des petites fonctions à base de string me paraissaient suffisantes, j'ai quand même regardé sur le net, et c'est tellement simple que je ne l'ai pas trouvé (enfin ça existe ptet mais pas sur ce site apparemment....)
Les fonctions prennent en entrée le flux string et retourne la chaîne modifiée, elles initient le doc, permettent d'ajouter une dtd, un stylesheet ainsi que l'ouverture/fermeture de balises ainsi qu'une simple ligne tag/value : on ne peut pas faire plus simple, le code serait ptet mieux avec plein de fonctions que je connais pas en PHP mais ça fonctionne.
Les voici :
 

Source

  • <?php
  • function startXmlDoc($xml)
  • {
  • $xml.="<?xml version='1.0' encoding='UTF-8'?>";
  • return $xml;
  • }
  • function addSystemDTD($xml, $DTDname, $DTDFile)
  • {
  • $xml.="<!DOCTYPE ".$DTDname." SYSTEM '".$DTDFile."'>";
  • return $xml;
  • }
  • function addStylesheet($xml, $xsl)
  • {
  • $xml.="<?xml-stylesheet href='".$xsl."' type='text/xsl'?>";
  • return $xml;
  • }
  • function startXmlElement($xml, $tag)
  • {
  • $xml.="<".$tag.">";
  • return $xml;
  • }
  • function endXmlElement($xml, $tag)
  • {
  • $xml.="</".$tag.">";
  • return $xml;
  • }
  • function addXmlValue($xml, $tag, $value)
  • {
  • $xml.="<".$tag.">".$value."</".$tag.">";
  • return $xml;
  • }
  • ?>
<?php
function startXmlDoc($xml)
{
	$xml.="<?xml version='1.0' encoding='UTF-8'?>";				
	return $xml;
}

function addSystemDTD($xml, $DTDname, $DTDFile)
{
	$xml.="<!DOCTYPE ".$DTDname." SYSTEM '".$DTDFile."'>";						
	return $xml;
}		
	
function addStylesheet($xml, $xsl)
{
 	$xml.="<?xml-stylesheet href='".$xsl."' type='text/xsl'?>";
	return $xml;
}	

function startXmlElement($xml, $tag)
{
	$xml.="<".$tag.">";
	return $xml;
}

function endXmlElement($xml, $tag)
{
	$xml.="</".$tag.">";
	return $xml;
}
	
function addXmlValue($xml, $tag, $value)
{
	$xml.="<".$tag.">".$value."</".$tag.">";
	return $xml;
}
?>

Conclusion

Evidemment, vous pourriez largement améliorer selon vos besoins : gestion encoding, attributs, balise simple ...
C'est une base en attendant, et moi ça me sert bien !! j'espère que ce sera pareil pour vous !
A+
 

Historique

10 décembre 2007 12:03:59 :
quelques précsions sur le contenu des fonctions.

Commentaires et avis

signaler à un administrateur
Commentaire de depression le 10/12/2007 12:44:05

Je ne noterai pas cette source.

Si c'est pour faire cela, le DOM est parfait...

signaler à un administrateur
Commentaire de wipfire le 10/12/2007 13:11:10

c'est vrai que je connais mal le dom, je l'utilise surtout pour du javascript et la gestion de l'interface... je vais voir !

signaler à un administrateur
Commentaire de malalam le 10/12/2007 13:13:31 administrateur CS

Et puis c'est très limité comme création de xml : il faut faire ça séquentiellement absolument, et on ne peut avoir qu'un niveau de profondeur. ET on ne peut pas avoir d'attrribut, ou des éléments sans textNode. Et pas de CDATA.
Franchement, c'est bien plus afficace avec DOMXML, et pas beaucoup plus compliqué.

signaler à un administrateur
Commentaire de wipfire le 10/12/2007 13:18:23

ok j'ai vu la librairie, c'est super complet et tout mais pour ce que j'avais à faire, ça m'a suffi et puis, on peut faire autant de sous niveaux que nécessaire... Effectivement, ne pas réinventer la roue, c'est sûr !! Encore pour le tout petit besoin que j'avais, ç'est suffisant, je le retire ...

signaler à un administrateur
Commentaire de codefalse le 10/12/2007 14:19:01 administrateur CS

En toute objectivité, vraiment, cette source doit-êlle vraiment rester ici ? Etant donné DomDocument, cette source offre une regression au personne ignorant Domdocument, ce n'est donc pas pertinent comme code.

Après, c'est mon avis !

signaler à un administrateur
Commentaire de garfield90 le 10/12/2007 14:31:45

Source sans grand interet sauf peut etre la discussion qui en découle.

une classe ayant le contenu du xml permettrait d'avoir a éviter de passer le contenu ($xml) a chaque vois, ce qui peut etre lourd

de plus, l'ajout d'attribut est franchement pas si dur que ca a gerer.

cette fonction n'a pas d'interet dans l'état :
# function addXmlValue($xml, $tag, $value)
# {
# $xml.="<".$tag.">".$value."</".$tag.">";
# return $xml;
# }
car equivalent à :
endXmlElement(startXmlElement(xml, 'toto').'contenu', 'toto');

tu ne prends pas en compte les charsets et les <[[CDATA

etc.

signaler à un administrateur
Commentaire de codefalse le 10/12/2007 15:21:04 administrateur CS

le xml, c'est beaucoup plus complexe que des tags et des attributs :p

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

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 SPLIT [ par fatNugly ] y'a t'il une fonction en php qui fait la meme chose que la fonction split en vb soitune fonction a laquelle on donne le nom du string ansi que le cara Comment modifier des XML avec PHP??? [ par guiout ] Salut à tous,voilà mon pb, je voudrais traiter des XML existantes.Par traiter j'entends modifier le contenu textuel entre certaines balises.J'utilise variable string en PHP [ par alainj ] Bonjour, Je récupére du texte a partir d'un champ de formulaire que je stocke dans une variable.Cette variable fait partie du texte d'un mail.lorque l PHP XML .... ? [ par Joez ] Voila comment faire pour mettre ce fichier www.cfp29.org/CDI2.XML dans une base de données Mysql ?je ne sais pas faire .... Est ce qu'on peut insérer du php dans une page XML [ par superpaolo ] Slt !Je voudrai insérer les données de ma base mysql dans un fichier xml.Je fais qq tests mais cela ne semble pas marcher.Voila ce que g fai&lt;?xml v XML et PHP [ par tom ] Bonjour tout le monde!Est ce que quelqu'un sait comment récupérer des données XML dans une page PHP? $HTTP_POST_VARS ne marche pas...Merci pour votre comment avoir le "?" avant le $QUERY_STRING ??? [ par pyranhaz ] Bonjour, Le code suivant devrait me donner la page visitée par le visiteur, ce qui fonctionne...Cependant, il devrait avoir un interrogation "?" avant Besoin d'aide Php/Xml [ par bipbipbip ] Bonjour à tousJe cherche a modifier un xml sans passer par des fonctions compliqués que je ne maitrise pas. Je voudrais que mon script php ouvre mon f 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


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.