XML ou classe

Classe ordinaire

Scriptol est orienté-objet et à des classes avec héritage. Définir une classe est facile.
Exemple de classe très simple:

class Voiture
  int vitesse
  void lireVitesse()
     ... quelques instructions ...
  return vitesse   
/class

XML

Mais Scriptol a aussi le xml.
Définir un document xml est tout aussi simple:

xml Voiture
   vitesse value = "10" /
   roues number = "4"
   passagers number = "5"
       Clara, Charly, Corinna, Cyril, Cecilia
   /passagers  
/xml

Utiliser XML

Les classes sont utilisées directement ou en créant une instance, et en faisant référence aux attributs ou des appels de méthodes.

Utiliser Xml n'est pas différent.
Vous pouvez définir autant d'instances de document xml que vous voulez, et modifier le contenu de chacune. Le contenu des éléments ou les attributs peuvent être assignés, et des éléments et attributs peuvent être ajoutés ou supprimés.

Voiture maVoiture                           ` maVoiture est instance du document Voiture
print maVoiture.vitesse                 ` afficher la valeur de l'attribut "vitesse"

print maVoiture.passagers           ` afficher le contenu de l'élément "passagers"

Importer un document XML

XML est utile principalement pour effectuer des traitements sur des document produits par des outils variés tels que traitement de texte, tableur, etc....

Pour charger ces documents, Scriptol intègre un parseur sax.
Vous avez juste à déclarer un document xml, charger le fichier xml, et vous pouvez utiliser le document comme une classe déclarée dans le source.

xml Voiture                                              ` déclarer un document vide.
/xml

Voiture maVoiture                                    ` définir une instance (pas requis).
maVoiture.load("document.xml")            ` charger un document externe

Voiture.load("document.xml")                  ` on peut utiliser directement la classe

Itérateur

Un itérateur sur un document xml est comme un itérateur sur un tableau, plus les méthodes down() and up().
L'itérateur permet de parser un document xml entier ou juste les sous-éléments d'un élément.

demo.begin()
while demo.isFound()
   print demo.getData()
let demo.inc()