Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
code_language:xml [2025/10/31 21:18] 74.7.227.242 ancienne révision (2025/09/09 10:50) restaurée |
code_language:xml [2025/11/01 16:19] (Version actuelle) 74.7.227.242 ancienne révision (2025/09/09 10:50) restaurée |
||
|---|---|---|---|
| Ligne 7: | Ligne 7: | ||
| Il existe différentes sortes de balises : | Il existe différentes sortes de balises : | ||
| - | * Les balises ouvrantes < | + | * Les balises ouvrantes < |
| - | * Les balises fermantes < | + | * Les balises fermantes < |
| - | * Les balises vides < | + | * Les balises vides < |
| - | * Les instructions de traitement < | + | * Les instructions de traitement < |
| - | * Les commentaires < | + | * Les commentaires < |
| * Les sections CDATA ({{lang|en|Character DATA}}) < | * Les sections CDATA ({{lang|en|Character DATA}}) < | ||
| Ligne 101: | Ligne 101: | ||
| </ | </ | ||
| - | ===== Structure d'un document XML ===== | + | ==== Structure d'un document XML ==== |
| Ligne 155: | Ligne 155: | ||
| Quand toutes ces règles sont respectées, | Quand toutes ces règles sont respectées, | ||
| - | |||
| - | == Exemple de structure simple == | ||
| - | <code Xml [enable_line_numbers=" | ||
| - | <?xml version=" | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | ===== Espace de nom ===== | ||
| - | |||
| - | == Syntaxe == | ||
| - | L' | ||
| - | <code Xml [enable_line_numbers=" | ||
| - | <adresse | ||
| - | | ||
| - | | ||
| - | </ | ||
| - | ===== Interprétation du XML ===== | ||
| - | |||
| - | Il existe de nombreuses API permettant d' | ||
| - | |||
| - | * Dom4J (Java) | ||
| - | * JDOM (Java) | ||
| - | * SimpleXML (PHP) | ||
| - | * PyXML (Python)[1] | ||
| - | |||
| - | Tous ces interpréteurs peuvent être de deux types normalisés : | ||
| - | |||
| - | * DOM (créé par le W3C) : un arbre de nœuds complet est construit à partir du document XML. | ||
| - | * SAX (créé par David Megginson) : l' | ||
| - | |||
| - | ===== XPath ===== | ||
| - | == Syntaxe == | ||
| - | Le XPath est un langage de sélection de différents types d' | ||
| - | |||
| - | Le XPath se présente sous la forme de chemins composés de http:// | ||
| - | ^ Sélecteur ^ Notes ^ | ||
| - | | nom du nœud | Sélectionne ce qui est compris dans le nœud nommé | | ||
| - | | / | Sélectionne en partant du nœud racine (chemin absolu). | | ||
| - | | / / | Sélectionne en partant du nœud courant, peu importe le reste de l' | ||
| - | | . | Sélectionne à partir du nœud courant (chemin relatif). = <code Xml [enable_line_numbers=" | ||
| - | | .. | Sélectionne à partir du parent du nœud courant. = <code Xml [enable_line_numbers=" | ||
| - | | @ | Sélectionne les attributs. = <code Xml [enable_line_numbers=" | ||
| - | | < | ||
| - | |||
| - | remarque|Il existe un interpréteur en ligne pour réaliser les exemples décrits ci-dessous : http:// | ||
| - | |||
| - | Ces expressions sont appelées « chemin de localisation », composés d'un ou plusieurs « pas de localisation » (ou « étapes ») séparés par des « / ». Les pas de localisation ont chacun trois composants : | ||
| - | - Un axe (parent, descendant…). | ||
| - | - Un test de nœud (nom ou fonction désignant les nœuds). | ||
| - | - Des prédicats (entre crochets). | ||
| - | |||
| - | == Axes == | ||
| - | Pour décrire les relations entre les nœuds, XPath utilise le vocabulaire suivant : | ||
| - | |||
| - | ^ Axe ^ Abréviation ^ Notes | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |||
| - | == Tests de nœuds == | ||
| - | Soit l' | ||
| - | * < | ||
| - | * < | ||
| - | |||
| - | |||
| - | ^ Tests ^ Notes ^ | ||
| - | | comment() | trouve tous les commentaires (ex : < | ||
| - | | text() | trouve un nœud texte, (ex : < | ||
| - | | processing-instruction() | trouve les instructions de traitement (ex : < | ||
| - | | node() | trouve tous les nœuds.| | ||
| - | |||
| - | == Prédicats == | ||
| - | Les prédicats sont des fonctions filtrant les nœuds évalués à '' | ||
| - | |||
| - | Par exemple, les quatre requêtes ci-dessous renvoie le même résultat (si la branche 2 est la dernière comme dans l' | ||
| - | */ /branche[2] | ||
| - | */ / | ||
| - | */ | ||
| - | */ | ||
| - | |||
| - | ^ Prédicats ^ Notes ^ | ||
| - | |||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |< | ||
| - | |||
| - | == Exemples == | ||
| - | Soit l' | ||
| - | <code Xml [enable_line_numbers=" | ||
| - | <?xml version=" | ||
| - | <tronc nom=" | ||
| - | <!-- commentaire 1 --> | ||
| - | < | ||
| - | < | ||
| - | <!-- commentaire 2 --> | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | </ | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | </ | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | === Abréviations === | ||
| - | - Sélection 1 : toutes les < | ||
| - | - Abrégé : < | ||
| - | - Non abrégé : < | ||
| - | - Sélection 2 : la < | ||
| - | - Abrégé : < | ||
| - | - Non abrégé : < | ||
| - | | ||
| - | - < | ||
| - | - Sélection 4 : dernière branche du tronc. | ||
| - | - < | ||
| - | - Sélection 5 : tous les noms des brindilles qui n'ont pas de feuille. | ||
| - | - < | ||
| - | |||
| - | === PHP === | ||
| - | Créer le .php suivant à côté du tronc.xml publié ci-dessus. | ||
| - | <code php [enable_line_numbers=" | ||
| - | <?php | ||
| - | $file = ' | ||
| - | $xpath = "/ | ||
| - | if(file_exists($file)) { | ||
| - | $xml = simplexml_load_file($file); | ||
| - | if($result = $xml-> | ||
| - | print ' | ||
| - | var_dump($result); | ||
| - | } else { | ||
| - | echo ' | ||
| - | } | ||
| - | } | ||
| - | else | ||
| - | exit(" | ||
| - | ?> | ||
| - | </ | ||