Algorithme Typeswitch

Version de base

  • Copie une séquence de noeuds et leurs descendants

    declare function local:transform($nodes as item()*) as item()* {
      for $node in $nodes
      return 
        typeswitch($node)
          case text() 
            return $node
          case attribute() return
            attribute { node-name($node) } 
              { $node/string() }
          case element() return 
            element { node-name($node) } 
              { local:transform($node/(attribute()|node())) } 
          default return $node
    };
  • Voir l'exemple dans l'énoncé de l'exercice 12

Applications

  • Ajouter des attributs à certains élément

  • Supprimer des attributs à certains élément

  • Ajouter des éléments

  • Supprimer des éléments

  • Remplacer certains éléments par d'autres

    Utiliser un document comme template pour produire d'autres documents

À suivre....

  • Ce module se poursuit avec les transparents suivants :

  • Constructeur d'élément

  • Constructeur d'attribut

  • Expressions de test

  • Exemple illustré

  • Exercice 12