2010-08-03 5 views
0

J'ai besoin de générer des structures XML à la volée en utilisant PHP. J'ai vu de nombreuses façons et bibliothèques, mais j'aimerais savoir lequel est le plus efficace.Générer XML à partir de PHP

En général, j'ai des tableaux et son contenu doit être retourné en tant que structure XML.

Merci d'avance.

Salutations! c.

+0

double possible de [array Multidimensional itération] (http://stackoverflow.com/questions/2207599/multidimensional-array-iteration/2207739#2207739) - l'approche iterator peut facilement être ajusté pour utiliser DOM ou une autre librairie XML si vous avez besoin de le transformer en un arbre DOM au lieu de simplement sortir le XML. – Gordon

+0

efficace pour la machine ou le programmeur? – stillstanding

+0

il n'y a pas de général * plus efficace *. Cela dépend de ce que vous voulez faire avec le XML. Voir aussi http://devzone.zend.com/article/2387 pour un aperçu. – Gordon

Répondre

2

Le plus cpu/cycle efficace: probablement si vous construisez des chaînes à la main. La plupart des développeurs/temps/clarté efficace: probablement SimpleXML.

+0

C'est subjectif. Personnellement, je trouve que SimpleXml est difficile à utiliser par rapport à ce que DOM me donne. – Gordon

+0

Cela dépend, quand avoir à utiliser des espaces de noms, attributs ou validation DOM aurait ma préférence en effet. Pour les scénarios de balise/valeur non vérifiés, SimpleXML est, à mon avis, beaucoup moins bavard, plus facile à lire, et je vais essayer quelques benchmarks, je suppose que c'est plus rapide. C'est pourtant subjectif en effet, je défends mon opinion ici, pas de faits :) – Wrikken

+0

J'avoue que je suis partial contre SimpleXml. Pour moi, le Simple en SimpleXml signifie * manque de fonctionnalité *, pas * simplicité d'utilisation *. Je trouve le support de l'espace de noms excentrique, l'interface implicite et le manque de verbosité particulièrement ennuyeux. DOM offre juste tellement plus de contrôle sur les nœuds - mais je comprends que tout le monde n'en a pas besoin/le veut :) – Gordon

0

Vous pouvez utiliser cette classe Array2XML.

+1

Array2XML est habituellement beaucoup (beaucoup!) Plus lent et plus gourmand en ressources processeur que SimpleXML ou XMLWriter. Je n'ai pas d'expérience avec la classe mentionnée, mais les expériences précédentes avec d'autres codes me rendaient très méfiant de tels modèles de design. – berkes

+1

@berkes: D'accord je l'ai proposé car c'est plus facile pour les noobs :) Bien que la décision soit là avec l'OP qu'il choisit. Nous l'avons maintenant suggéré des deux manières :) – Sarfraz

Questions connexes