1

J'ai un arbre XML (contenant une table des matières) que je voudrai afficher sous forme d'arborescence "dynamique" avec possibilité de plier/déplier un niveau.

Connaissez vous une solution rapide pour ça ?
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

2

heu... ouvrir ton XML avec n'importe quel browser ?

je suis pas sûr d'avoir compris ni ton post, ni le rapport avec le titre, tu peux préciser exactement ce que tu cherches à faire ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

Hmm comme le suggère ton titre, XSLT se prête très bien à cet exercice cheeky (Conversion en (X)HTML j'entends)
Mais du coup qu'aimerais tu savoir de plus ? Solutions alternatives, exemples d'implémentation ?

Si ce que tu veux c'est un exemple de code qui fait ça, ça ne doit pas être trop difficile à trouver. (Faut un template XSLT récursif, il me semble déjà avoir fait ça, faut que je retrouve)
Pour le plissement/dépliement je ne sais pas si c'est faisable sans JavaScript, mais même dans ce cas c'est loin d'être la mer à boire (une ou deux petites ligne de code pour ajuster le style de l'élément.)

Le code exact et sa simplicité dépendront bien évidemment de la structure exacte de ton arbre… (Est-ce seulement une table des matières ou bien il y a aussi du contenu ?)
Sinon heu… ben voilà quoi tongue

(Je crois que tu peux aussi envisager de styliser directement ton XML avec du CSS mais je ne sais pas comment gérer le pliement / dépliement dans ce cas…)

[cross… Sinon la solution de Zeph n'est pas mal non plus cheeky]
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

4

Zeph (./2) :
heu... ouvrir ton XML avec n'importe quel browser ?

je suis pas sûr d'avoir compris ni ton post, ni le rapport avec le titre, tu peux préciser exactement ce que tu cherches à faire ?

C'est pour le taf, on a un "tas de docs" qui sont référencés dans un site "moderne" mais qui a gardé le look 90's. Donc y'a une frame à gauche, où on veut l'index des docs, on clique sur un libellé, ça ouvre le doc, on clique sur le [+] ça déplie le niveau en dessous de l'index, on clique sur [-] ça replie...

Le "tas de docs" est sous une forme XML et l'idée c'est pouvoir automatiser la génération de l'index avec du XSLT.

Le problème, c'est que j'en ai jamais fait et que je n'en sais pas plus sur les détails techniques (je sais que l'index est un arbre XML mais je sais pas exactement quelle forme il a)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5

Ben pour le coup effectivement tu pourrais écrire un XSLT qui transforme tes XML en documents HTML (ou n'importe quoi d'autre d'ailleurs) plus faciles à lire. Le problème c'est que comme disait GoldenCrystal on ne va pas pouvoir en dire beaucoup plus sur ce topic vu que ça demande :

1 - De connaître la structure des fichiers XML en question ;
2 - De savoir écrire un XSLT, mais il doit y avoir tout plein de tutos sur le net (au besoin si tu as des questions sur des points particuliers, on peut peut-être essayer d'y répondre ici)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

Pour être plus complet : la demande été faite (mettre en forme "web v1.0") et le spécialiste xml&xslt maintient que "c'est pas possible sans watmille lignes de JS" tandis que le responsable de la veille technologique assure que "y'a aucune possibilité technique"

j'aurai aimé leur montrer qu'il déconnent mais j'y connais rien (à part la théorie) en xslt...

mais je pense qu'un xslt doit permettre de générer des divs qu'on montre ou pas en fonction d'une icone [+] ou [-], non ?
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

7

(et surtout, morceau choisi du responsable veille technologique, il causait avec un CP autour d'un café : "nan mais C++ n'est pas une solution, il faut préférer Java, de nos toutes les machines ont une JVM alors que les machines avec Silverlight, c'est rarissime donc un programme codé en C++ ne pourra pas être exécuté sans déployer silverlight d'abord", le cp lui a répondu "C# tu veux dire, non ?" et lui, toujours aussi sûr de son coup "parfaitement, c'est la même chose, ils ont juste modernisé le nom")
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

8

./6 > Yep, tout à fait.
Y'a des trucs compliqués et/ou chiants à faire en XSL, mais de ce que j'en comprends ton cas tombe parfaitement dans ce qui est faisable en XSLT.
En gros en XSL tu vas définir des template pour parser une balise en particulier (tu peux nommer tes templates, ou les faire matcher automatiquement des balises…).
Et à l'intérieur d'un autre template tu vas par exemple appeller d'autres templates sur les éléments enfants (ça peut être le même que le template parent)…

Faut que je trouve un exemple de code concret parce que ce que google me renvoie est un peu moisi là :/

./7 > Heu… OMG grin
Confondre C#, C++ et Silverlight, t'es tombé sur un grand vainqueur.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

9

(et sinon, en moins "essekptionnel", aujourd'hui, après un mail nous demandant si on connaissais des libs JAVA pour convertir un tableau HTML en image, on a reçu un mail "merci pour vos réponses mais la solution n'a pas été retenue parce qu'une fois converti, le tableau n'est pas redimensionnable et on ne peux pas y faire de recherche textuelle"... déjà, c'est pas mal, j'ai croisé l'auteur du mail deux mintues après, j'ai demandé pourquoi il voulait faire ça, un format PDF pourrait correspondre et là la réponse "ouais mais nan, c'est pour inclure dans du HTML après". j'ai meême pas cherché à comprendre)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

10

Tu travailles où déjà ? grin
avatar

11

[nosmile]Tiens, voilà un exemple fonctionnel hacké à la va-vite… (Enfin, si je ne me suis pas trompé, en tout cas ça semblait fonctionner sous Safari)
tree.xml :
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="tree.xsl" type="text/xsl"?>
<tree title="XML Tree">
	<node title="Node A">
		<node title="Node A" />
		<node title="Node B">
			<node title="Node A" />
			<node title="Node B" />
			<node title="Node C" />
			<node title="Node D" />
		</node>
		<node title="Node C" />
		<node title="Node D" />
	</node>
	<node title="Node B" />
	<node title="Node C" />
	<node title="Node D" />
</tree>

tree.xsl :
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/1999/xhtml">

	<xsl:output method="xml" version="1.0" encoding="utf-8" omit-xml-declaration="no" indent="no" media-type="text/xml"
		doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
	
	<!-- Tree template -->
	
	<xsl:template match="/tree">
		<html:html xml:lang="en" lang="en">
			<html:head>
				<html:title><xsl:value-of select="@title" /></html:title>
				<html:meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
				<html:meta http-equiv="Content-Style-Type" content="text/css" />
				<html:link rel="stylesheet" type="text/css" href="style.css" />
			</html:head>
			<html:body>
				<xsl:call-template name="node_children" />
			</html:body>
		</html:html>
	</xsl:template>
	
	<!-- Node templates -->
	
	<xsl:template name="node">
		<xsl:choose>
			<xsl:when test="not(*) and not(normalize-space())">
				<html:li><xsl:call-template name="node_title" /></html:li>
			</xsl:when>
			<xsl:otherwise>
				<html:li>
					<xsl:call-template name="node_title" />
					<xsl:call-template name="node_children" />
				</html:li>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
	
	<xsl:template name="node_title">
		<xsl:value-of select="@title" />
	</xsl:template>
	
	<xsl:template name="node_children">
		<html:ul>
			<xsl:for-each select="node">
				<xsl:call-template name="node" />
			</xsl:for-each>
		</html:ul>
	</xsl:template>
	
</xsl:stylesheet>

(Bon c'est basique et y'a pas le javascript pour agrandir/rétrécir, mais c'est pour montrer le principe ^^)

./9 > Que dire sinon… rotfl
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

12

vince (./1) :
je voudrai afficher sous forme d'arborescence "dynamique" avec possibilité de plier/déplier un niveau.
vince (./6) :
Pour être plus complet : la demande été faite (mettre en forme "web v1.0")

Contradiction! Il n'y avait pas de trucs dynamiques comme ça dans le bon vieux web 1.0! La vraie forme web 1.0, ce serait d'avoir une page pour chaque sous-menu, et si on clique sur une entrée de menu, soit elle ouvre un sous-menu à gauche dans le frame de menu (remplaçant le menu de niveau supérieur), soit une page de contenu à droite dans le frame de contenu.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

Kevin Kofler (./12) :
vince (./1) :
je voudrai afficher sous forme d'arborescence "dynamique" avec possibilité de plier/déplier un niveau.
vince (./6) :
Pour être plus complet : la demande été faite (mettre en forme "web v1.0")

Contradiction! Il n'y avait pas de trucs dynamiques comme ça dans le bon vieux web 1.0! La vraie forme web 1.0, ce serait d'avoir une page pour chaque sous-menu, et si on clique sur une entrée de menu, soit elle ouvre un sous-menu à gauche dans le frame de menu (remplaçant le menu de niveau supérieur), soit une page de contenu à droite dans le frame de contenu.

Tout le monde sauf toi a compris de quoi je parlais, un site avec frame et des couleurs à gerber. Le copyright est même écrit en COMIC SANS MS... Le tout sur des couleurs "années 90"...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

14

Avec un gif animé ? trilove
avatar

15

non, par contre on a un logo au format gif mais avec les pertes d'un jpg de l'époque, bien visible
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

16

Et de la balise blink ? #modlove#
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

17

ah non, ça manquait ça...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

18

Et des éléments marquee ? cheeky
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

19

(je crois avoir vu des pages où les titres étaient clairement du wordart)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

20

avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

21

Tiens, ça faisait longtemps...
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

22

Un peu plus de un an, quoi ?

vince, ça te dit de coder ton truc en Gopher ? triso
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

23

Nan mais j'ai eu une explication rigolote au taf : ah mais en fait, on sait faire, c'est même vous qui l'avez fait, regardez, sur ce projet...

(et le mec va probablement KevinKofleriser comme quoi c'est pas comparable et que c'est pas possible maintenant)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

24

(pas envie de créer un sujet juste pour ça)
On a un dilemne au taf, on a ça dans fichier xml
<?xml version="1.0" encoding="UTF-8"?><Document xmlns="fichier.xsd"> 

(où "fichier.xsd" a été mis à la place de données non publiables)

Certains affirment qu'il faut un saut de ligne entre les deux balises. D'autres (dont moi) pensent que non. Et pas moyen de trouver de texte "officiel" sur w3c qui pose clairement la règle.

D'après vous, quelle est la bonne réponse : interdit de mettre sur la même ligne ou pas ?
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

25

Les deux sont valides, tu as le droit de mettre autant d'espaces que tu veux entre le prologue et le premier élément. Pour le texte officiel (pourquoi ces guillemets), pas besoin de chercher bien loin, tu as plein d'exemples ici : http://www.w3.org/TR/REC-xml/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

26

merci !

(concernant les guillemets, c'est Talend qui les appose tout seul)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca