Page 1 sur 1

Est il possible par un script php de classer les tag d'1 xml

Posté : 30 oct. 2006, 09:31
par classement d'un xml ?
Est il possible par un script php de classer un fichier xml et de le réécrire ?
exemple j'ai ce fichier :

Code : Tout sélectionner

<valeurs><val cns="802529000" achat_prix="10" achat_quantite="1000"jour="20060201" passage="1"/><val cns="802529000" achat_prix="5" achat_quantite="500"jour="20060101" passage="1"/><val cns="802529000" vente_prix="10" vente_quantite="1" jour="20060101" passage="1"/><val cns="802529000" vente_prix="8" vente_quantite="4" jour="20060101" passage="1"/><val cns="802529000" vente_prix="8" vente_quantite="1000" jour="20060102" passage="1"/><val cns="802529000" achat_prix="8" achat_quantite="500"jour="20060201" passage="1"/><val cns="802529000" vente_prix="8" vente_quantite="1200" jour="20070202" passage="1"/><val cns="802529000" vente_prix="8" vente_quantite="1200" jour="20060202" passage="1"/><val cns="802529000" vente_prix="4" vente_quantite="1200" jour="20060101" passage="1"/><val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060101" passage="1"/><val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060102" passage="1"/><val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060101" passage="1"/><val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060101" passage="1"/><val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060201" passage="1"/><val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060102" passage="1"/></valeurs>
est il possible possible de faire le tri suivant et de réécrire le fichier :
d'abord on trouve d'abord les achats et ensuite dans les achats et dans les ventes, on classe par chronologie (tag) jour ?
est ce réalisable ?

Posté : 30 oct. 2006, 09:53
par Cyrano
:shock: Est-ce que ce serait trop demander quand tu postes du code de poster du code lisible ?

C'est pourtant pas dur me semble de faire ceci:

Code : Tout sélectionner

<valeurs> <val cns="802529000" achat_prix="10" achat_quantite="1000"jour="20060201" passage="1"/> <val cns="802529000" achat_prix="5" achat_quantite="500"jour="20060101" passage="1"/> <val cns="802529000" vente_prix="10" vente_quantite="1" jour="20060101" passage="1"/> <val cns="802529000" vente_prix="8" vente_quantite="4" jour="20060101" passage="1"/> <val cns="802529000" vente_prix="8" vente_quantite="1000" jour="20060102" passage="1"/> <val cns="802529000" achat_prix="8" achat_quantite="500"jour="20060201" passage="1"/> <val cns="802529000" vente_prix="8" vente_quantite="1200" jour="20070202" passage="1"/> <val cns="802529000" vente_prix="8" vente_quantite="1200" jour="20060202" passage="1"/> <val cns="802529000" vente_prix="4" vente_quantite="1200" jour="20060101" passage="1"/> <val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060101" passage="1"/> <val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060102" passage="1"/> <val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060101" passage="1"/> <val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060101" passage="1"/> <val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060201" passage="1"/> <val cns="802529000" vente_prix="1" vente_quantite="1200" jour="20060102" passage="1"/> </valeurs>
Là on peut comprendre beaucoup mieux et tes explications seraient peut-être plus claires.

Pour faire simple, il faut parser ton fichier XML, stocker les valeurs dans un tableau multi-dimensionnel, trier ce tableau pour ensuite ré-écrire le fichier. Explore la fonction array_multisort() et fonctions annexes.

Posté : 30 oct. 2006, 09:56
par Invité
J'ai refait mon fichier xml car trop compliqué.
Celui là serait, il me semble + facile à attaquer par une boucle.
Mais comment faire pour le classer ?

Code : Tout sélectionner

<valeurs><val cns="802529000" isin="FR9909090909" transaction="achat" typebanque="Credit Cooperatif" liquidation="Quotidienne" classe="Strategies Dynamiques" nom="action 1" typefond="O" creation="non" prix="10" quantite="1000" jour="20060201" passage="1"/><val cns="802529000" isin="FR9909090909" transaction="achat" typebanque="Credit Cooperatif" liquidation="Quotidienne" classe="Strategies Dynamiques" nom="action 1" typefond="O" creation="non" prix="10" quantite="2000" jour="20060202" passage="1"/><val cns="802529000" isin="FR9909090909" transaction="vente" typebanque="Credit Cooperatif" liquidation="Quotidienne" classe="Strategies Dynamiques" nom="action 1" typefond="O" creation="non" prix="10" quantite="500" jour="20060203" passage="1"/><val cns="802529000" isin="FR9909090909" transaction="achat" typebanque="Credit Cooperatif" liquidation="Quotidienne" classe="Strategies Dynamiques" nom="action 1" typefond="O" creation="non" prix="10" quantite="1000" jour="20060201" passage="1"/></valeurs>
le classement se ferait donc par transaction : achat et vente et esuite dedans par jour.
Merci beaucoup

Posté : 30 oct. 2006, 09:57
par Invité
désolé pour le code :

Code : Tout sélectionner

<valeurs> <val cns="802529000" isin="FR9909090909" transaction="achat" typebanque="Credit Cooperatif" liquidation="Quotidienne" classe="Strategies Dynamiques" nom="action 1" typefond="O" creation="non" prix="10" quantite="1000" jour="20060201" passage="1"/> <val cns="802529000" isin="FR9909090909" transaction="achat" typebanque="Credit Cooperatif" liquidation="Quotidienne" classe="Strategies Dynamiques" nom="action 1" typefond="O" creation="non" prix="10" quantite="2000" jour="20060202" passage="1"/> <val cns="802529000" isin="FR9909090909" transaction="vente" typebanque="Credit Cooperatif" liquidation="Quotidienne" classe="Strategies Dynamiques" nom="action 1" typefond="O" creation="non" prix="10" quantite="500" jour="20060203" passage="1"/> <val cns="802529000" isin="FR9909090909" transaction="achat" typebanque="Credit Cooperatif" liquidation="Quotidienne" classe="Strategies Dynamiques" nom="action 1" typefond="O" creation="non" prix="10" quantite="1000" jour="20060201" passage="1"/> </valeurs>
désolé

Posté : 30 oct. 2006, 09:58
par Cyrano
Dis-donc : tu sais lire ? :evil: