Bonjour,
Je suis débutant en XML/XSLT. Après pas mal de recherche j'ai crée un fichier XSLT pour restructurer un fichier XML.
J'ai travailler avec un éditeur (Editix) pour la création du XSLT. Quand je demande à cet éditeur de me transformer ma source XML avec le XSLT, tout se passe merveilleusement bien. Il m'ouvre Internet Explorer avec la structuration que j'attend.
J'ai donc voulu lié ma source XML au XSLT mais là ça ne marche plus.
Voici ma source ( tronquée ):
Mon XSLT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="everest.xsl"?> <Report><Lang>it</Lang> <Page><Title>Report</Title><Icon>112</Icon> <Item><Title>Version</Title><Icon>112</Icon><ID>257</ID><Value>EVEREST v3.50.761/it</Value></Item> <Item><Title>Benchmark Module</Title><Icon>112</Icon><ID>266</ID><Value>2.1.169.0</Value></Item> <Item><Title>Homepage</Title><Icon>116</Icon><ID>259</ID><Value>http://www.lavalys.com/</Value></Item> <Item><Title>Report Type</Title><Icon>91</Icon><ID>260</ID><Value>Report Wizard</Value></Item> <Item><Title>Computer</Title><Icon>46</Icon><ID>261</ID><Value>INFP01XXXXXXX1</Value></Item> <Item><Title>Generator</Title><Icon>47</Icon><ID>262</ID><Value>Administrator</Value></Item> <Item><Title>Operating System</Title><Icon>38</Icon><ID>263</ID><Value>Microsoft Windows 2000 Professional 5.0.2195 (Win2000 Retail)</Value></Item> <Item><Title>Date</Title><Icon>64</Icon><ID>264</ID><Value>2007-02-23</Value></Item> <Item><Title>Time</Title><Icon>131</Icon><ID>265</ID><Value>14:56</Value></Item> </Page>
Ce que j'obtiens en passant par l'éditeur (tronqué ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" > <xsl:output method="xml" indent="yes" encoding="ISO-8859-1"/> <!-- Début du programme principal --> <!-- Selection de l'ensemble du document XML source --> <xsl:template match = "/" > <!-- Création de l'élément racine --> <xsl:element name ="Report"> <!-- Traitement de chaque élément PAGE --> <xsl:for-each select="//Page"> <!-- Création de l'élément PAGE avec l'élément TITLE en nom --> <xsl:element name = "{normalize-space(translate(current()/Title,' 0123456789():/\-.,','___________________'))}"> <!-- Ajout de l'élement VALUE en valeur text --> <xsl:value-of select = "current()/Value" /> <!-- Traitement de chaque élément ITEM appartenant à un élément PAGE --> <xsl:for-each select = "current()/Item" > <!-- Création de l'élément ITEM avec l'élément TITLE en nom --> <xsl:element name = "{normalize-space(translate(current()/Title,' 0123456789():/\-.,','___________________'))}"> <!-- Ajout de l'élement VALUE en valeur text --> <xsl:value-of select = "current()/Value" /> </xsl:element> </xsl:for-each> <!-- Traitement de chaque élément GROUP appartenant à une élément PAGE --> <xsl:for-each select = "current()/Group" > <!-- Création de l'élément GROUP avec l'élément TITLE en nom --> <xsl:element name = "{normalize-space(translate(current()/Title,' 0123456789():/\-.,','___________________'))}"> <!-- Traitement de chaque élément ITEM à l'interieur de l'élément GROUP --> <xsl:for-each select = "current()/Item" > <!-- Création de l'élément ITEM avec l'élément TITLE en nom --> <xsl:element name = "{normalize-space(translate(current()/Title,' 0123456789():/\-.,','___________________'))}"> <!-- Ajout de l'élement VALUE en valeur text --> <xsl:value-of select = "current()/Value" /> </xsl:element> </xsl:for-each> </xsl:element> </xsl:for-each> <!-- Traitement de chaque élément DEVICE --> <xsl:for-each select = "current()/Device" > <!-- Création de l'élément DEVICE avec l'élément TITLE en nom --> <!-- ANCIEN CODE <xsl:element name = "{normalize-space(translate(current()/Title,' 0123456789():/\-.,','___________________'))}">--> <xsl:element name = "Device3"> <!-- <xsl:element name = "Device"> --> <xsl:element name = "Title"> <xsl:value-of select = "current()/Title" /> </xsl:element> <!-- Traitement de chaque élément GROUP appartenant à une élément DEVICE --> <xsl:for-each select = "current()/Group" > <!-- Création de l'élément GROUP avec l'élément TITLE en nom --> <xsl:element name = "{normalize-space(translate(current()/Title,' 0123456789():/\-.,','___________________'))}"> <!-- Traitement de chaque élément ITEM à l'interieur de l'élément GROUP --> <xsl:for-each select = "current()/Item" > <!-- Création de l'élément ITEM avec l'élément TITLE en nom --> <xsl:element name = "{normalize-space(translate(current()/Title,' 0123456789():/\-.,','___________________'))}"> <!-- Ajout de l'élement VALUE en valeur text --> <xsl:value-of select = "current()/Value" /> </xsl:element> </xsl:for-each> </xsl:element> </xsl:for-each> <!-- Traitement de chaque élément ITEM à l'interieur de l'élément DEVICE --> <xsl:for-each select = "current()/Item" > <!-- Création de l'élément ITEM avec l'élément TITLE en nom --> <xsl:element name = "{normalize-space(translate(current()/Title,' 0123456789():/\-.,','___________________'))}"> <!-- Ajout de l'élement VALUE en valeur text --> <xsl:value-of select = "current()/Value" /> </xsl:element> </xsl:for-each> </xsl:element> </xsl:for-each> </xsl:element> </xsl:for-each> </xsl:element> </xsl:template> </xsl:stylesheet>
et ce que j'obtiens en utilisant directement IE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="ISO-8859-1"?> <Report> <Report> <Version>EVEREST v3.50.761/it</Version> <Benchmark_Module>2.1.169.0</Benchmark_Module> <Homepage>http://www.lavalys.com/</Homepage> <Report_Type>Report Wizard</Report_Type> <Computer>INFP01XXXXXXX1</Computer> <Generator>Administrator</Generator> <Operating_System>Microsoft Windows 2000 Professional 5.0.2195 (Win2000 Retail)</Operating_System> <Date>2007-02-23</Date> <Time>14:56</Time> </Report>
ouLa page XML ne peut pas être affichée
Impossible d'afficher l'entrée XML en utilisant la feuille de style XSL. Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.
--------------------------------------------------------------------------------
Ce nom ne doit pas contenir le caractère '+' : -->+<--____V
Auriez vous une idée de ce que j'ai pu manqué. J'ai verifié plusieurs tuto, testé avec des exemples, mais je ne trouve pas :/EVEREST v3.50.761/it 2.1.169.0 http://www.lavalys.com/ Report Wizard INFP01XXXXXXX1 Administrator Microsoft Windows 2000 Professional 5.0.2195 (Win2000 Retail) 2007-02-23 14:56 Advanced Configuration and Power Interface (ACPI) PC (Mobile) Microsoft Windows 2000 Professional Service Pack 4 6.0.2800.1106 (IE 6.0 SP1) 4.07.00.0700 (DirectX 7.0) INFP01XXXXXXX1 Administrator INFP01XXXXXXX1 2007-02-23 / 14:56 Intel Pentium IIIE, 866 MHz (6.5 x 133) Unknown VIA VT8606 ProSavage PN133 247 MB (PC133 SDRAM) Phoenix (08/23/06) Communications Port (COM1) Communications Port (COM2) Printer Port (LPT1) S3 Graphics Twister (8 MB) <_D_Accelerator>S3 Twister (86c380) Plug and Play Monitor [NoDB] VIA Bus Master IDE Controller Floppy disk drive M-SysT5 Dell Memory Key USB Device (109 MB, USB) ST3402111A (40 GB, 7200 RPM, Ultra-ATA/100) TOSHIBA ODD-DVD SD-C2732 (8x/24x DVD-ROM) OK 9114 MB (7282 MB free) 29015 MB (27840 MB free) 37.2 GB (34.3 GB free) Standard 101/102-Key or Microsoft Natural PS/2 Keyboard PS/2 Compatible Mouse 10.4.43.20 00-0E-8C-80-6E-16 Intel(R) 82559 Fast Ethernet LAN on Motherboard (10.4.43.20) VIA PCI-USB Universal Host Controller VIA PCI-USB Universal Host Controller USB Mass Storage Device
Merci
Partager