Bonjour,
Toujours avec mes drapeaux, pour l'instant je me contentais d'une lecture séquentielle d'un contenu, mais je butte sur le drapeau breton
dans ce fichier, il y a appel à #ermine cette #ermine utilisant elle-même #s mais, comme vous le constatez, l'ordre des appels n'est pas vraiment au top, j'aurais plutôt vu ceci pour pouvoir en faire un traitement séquentiel
Code XML : 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 <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1350" height="900"> <rect width="1350" height="900" fill="#fff"/> <rect x="600" width="1350" height="100" fill="#000"/> <rect x="600" y="200" width="1350" height="100" fill="#000"/> <rect y="400" width="1350" height="100" fill="#000"/> <rect y="600" width="1350" height="100" fill="#000"/> <rect y="800" width="1350" height="100" fill="#000"/> <use xlink:href="#ermine" x="-225" y="-122.5"/> <use xlink:href="#ermine" x="-75" y="-122.5"/> <use xlink:href="#ermine" x="75" y="-122.5"/> <use xlink:href="#ermine" x="225" y="-122.5"/> <use xlink:href="#ermine" x="-150"/> <g id="ermine" fill="#000"> <use xlink:href="#s" transform="rotate(-90 300,167.5)"/> <path id="s" d="M 300,167.5 l -9,-13.5 l 9,-22.5 l 9,22.5 z"/> <use xlink:href="#s" transform="rotate(90 300,167.5)"/> <path d="M 300,167.5 l 40.5,99 l -31.5,-13.5 l -9,18 l -9,-18 l -31.5,13.5 z"/> </g> <use xlink:href="#ermine" x="150"/> <use xlink:href="#ermine" x="-225" y="122.5"/> <use xlink:href="#ermine" x="-75" y="122.5"/> <use xlink:href="#ermine" x="75" y="122.5"/> <use xlink:href="#ermine" x="225" y="122.5"/> </svg>
Et, pourtant, le fichier SVG s'affiche correctement.
Code XML : 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 <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1350" height="900"> <rect width="1350" height="900" fill="#fff"/> <rect x="600" width="1350" height="100" fill="#000"/> <rect x="600" y="200" width="1350" height="100" fill="#000"/> <rect y="400" width="1350" height="100" fill="#000"/> <rect y="600" width="1350" height="100" fill="#000"/> <rect y="800" width="1350" height="100" fill="#000"/> <g id="ermine" fill="#000"> <path id="s" d="M 300,167.5 l -9,-13.5 l 9,-22.5 l 9,22.5 z"/> <use xlink:href="#s" transform="rotate(-90 300,167.5)"/> <use xlink:href="#s" transform="rotate(90 300,167.5)"/> <path d="M 300,167.5 l 40.5,99 l -31.5,-13.5 l -9,18 l -9,-18 l -31.5,13.5 z"/> </g> <use xlink:href="#ermine" x="-225" y="-122.5"/> <use xlink:href="#ermine" x="-75" y="-122.5"/> <use xlink:href="#ermine" x="75" y="-122.5"/> <use xlink:href="#ermine" x="225" y="-122.5"/> <use xlink:href="#ermine" x="-150"/> <use xlink:href="#ermine" x="150"/> <use xlink:href="#ermine" x="-225" y="122.5"/> <use xlink:href="#ermine" x="-75" y="122.5"/> <use xlink:href="#ermine" x="75" y="122.5"/> <use xlink:href="#ermine" x="225" y="122.5"/> </svg>
D'où ma question : Comment puis-je, dans une première phase de lecture ignorer tous les appels (les <use />) pour les traiter dans un deuxième temps ?
Ou, autrement posé, y a-t-il une instruction qui permettrai de dire "lire tous les éléments du XML sauf les nœuds <use /> ?
Le même principe pour le type de nœud g d'ailleurs mais en inverse c'est-à-dire : lire en premier tous les nœuds de type g avant de lire les autres.
Bien sûr, je pourrais faire 3 passes entières mais il devrait certainement y avoir mieux ?
Partager