Bonjour,
Voila j'ai un petit challenge a vous proposé... (pour ceux qui aime ca)
J'ai bien quelque idée mais ca me semble être des transformations trop lourde!
Le xml de départ:
Ce qu'il faut que je tri c'est ceux qui sont "vide" afin qu'il ne reste pas dans le XML de sortie! Donc ne pas avoir le AVel si la condition n'est pas remplie!
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 <?xml version="1.0" encoding="UTF-8"?> <AV GF="1" RF="4" type="Verfuegung"> <AVel TitNr=" " fldID="235" fmt="TEXT"> <Title>Verfügung</Title> <Text>In das Handelsregister wird eingetragen:</Text> </AVel> <AVel TitNr="1.1." fldID="101" fmt="TEXT"> <Title>Firma</Title> <Text>Enderli Transporte und Maschinenbetrieb GmbH</Text> </AVel> <AVel TitNr="1.2." fldID="102" fmt="TEXT"> <Title>Uebersetzungen der Firma</Title> <Text/> </AVel> <AVel TitNr="2." fldID="110" fmt="SITZ"> <Title>Sitz</Title> <Sitz bfs="177">Pfäffikon</Sitz> </AVel> <AVel TitNr="3." fldID="115" fmt="ADR"> <Title>Domizil</Title> <Adr fldID="115" fldType="FirmenAdresse"> <Strasse nr="52">Feldstrasse 52</Strasse> <PLZ>8330</PLZ> <Ort>Pfäffikon <eigene Büros></Ort> <fullText>Feldstrasse 52_8330 Pfäffikon <eigene Büros></fullText> </Adr> </AVel> <AVel TitNr="3.1" fldID="119" fmt="ADR"> <Title>Postadresse</Title> <Adr fldID="119" fldType="PostAdresse"> <fullText></fullText> </Adr> </AVel> <AVel TitNr="4." fldID="67" fmt="LINE"> <Title>Rechtsform</Title> <Text>Gesellschaft mit beschränkter Haftung (Neueintragung)</Text> </AVel> <AVel TitNr="5." fldID="156" fmt="DATE"> <Title>Statutendatum</Title> <Date></Date> </AVel> ... </AV>
vide = dans l'element AVel il n'y a "pas de contenu" dans l'élément variable en dessous de la balise Title qui apparait toujours
pas de contenu= je connais la liste de tout ces éléments qui peuvent venir (la structure est la mais vide) il y en a 13 types d'éléments ou de structures.
par ex: il a Betrag qui contient juste un champ Betrag
et il y a adresse qui contient la structure suivante:
et là c'est la valeur fullText qui doit être testé!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <Adr> <Empfaenger/> <co/> <Strasse></Strasse> <Zusatz></Zusatz> <PLZ/> <Ort/> <Land/> <fullText/> </Adr>
Encore un truc je sais de quelle type sera cette élément qui vient après Title grace l'attribut fmt de la balise AVel!
fmt possible (teste si la valeur est vide):
ADR et ADRESSE : les même a tester: Adr/fullText ou Adr/Ort
BETRAG: sa valeur /Betrag
BISHER: sa valeur /Bisher
DATE: sa valeur /Date
EMPTY : celui-ci n'a rien par défaut (seulement le Title)et ne doit pas être enlevé
GEBUEHR: teste si Gebuehren/Gebuehr/@Betrag
LINE: si Liste/Line
LISTE : si Liste/Line ou Liste/Stamps/St1
SITZ: si /Sitz
STUECKELUNG: si /STUECKELUNG/Stueck
TEXT: si /Text
et le dernier PERSON le plus compliqué il peux être contenu dans trois structure:
PersBisher test si /PersBisher/Person/Personalien/fulltext ou /PersBisher/Person/Personalien/Ort
PersNeuMut pareil mais PersNeuMut a la place de PersBisher
PersLoesch pareil mais PersLoesch a la place de PersBisher
Ce que je vous demande n'est pas un xslt tout fait mais la facon dont vous procéderiez pour réaliser un tel tri (le squelette du XSLT)! Moi j'ai déjà ma petite idée mais pour ne pas vous influencer je ne vous la mettrai pas!
Si quelqu'un se sent de taille?
Bonne chance et merci d'avance pour vos réponse!
++
Thierry
Partager