begin process at 2010 03 19 20:27:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Xml

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

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


 Information sur la source

Note :
Aucune note
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 :10 172

Auteur : wipfire

Ecrire un message privé
Site perso
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.

 Sources de la même categorie

Source avec Zip Source avec une capture MINI-PROCESSEUR XPROC (PIPELINE XML) par ordiman85
Source avec Zip Source avec une capture XML MAPPING TO CLASS OBJECTS / CHARGEMENT / PARSING / MODIFI... par aKheNathOn
Source avec Zip Source avec une capture VIEWER POUR JALBUM SKIN CHAMELEON LIVRE D'OR par ym_trainz
Source avec Zip Source avec une capture PARSEUR XML par petifa
FICHIER XML => TABLEAU ASSOCIATIF par durealex

 Sources en rapport avec celle ci

Source avec Zip AJOUT D'UN RENDEZ-VOUS DANS UN CALENDRIER EXCHANGE 2003 par SachaWolf
Source avec Zip GÉNÉRATEUR DE BALISE META KEYWORDS par ParseError
Source avec Zip CHARGER DES DONNÉES DEPUIS UN FICHIER TXT DANS UNE BASE DE D... par ig3
AJOUTER UN ARRIÈRE PLAN SUR UNE IMAGE par digitaldax
Source avec Zip CLIENT CHAT (MESSAGERIE PRIVÉE) AJAX ET PHP par zniko07

Commentaires et avis

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...

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 !

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é.

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 ...

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 !

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.

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...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,530 sec (3)

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