Bug dans XML ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Bug dans XML ?

Message par Mesa »

Je n'arrive pas à mettre un espace dans le nom d'un noeud XML.
Et vous ?

ERREUR

Code : Tout sélectionner

 ; Création d'un arbre xml 
  xml = CreateXML(#PB_Any) 
  mainNode = CreateXMLNode(RootXMLNode(xml), "Zoo") 
  SetXMLNodeName(mainNode, "Zoo") 
  
  ; Création du premier noeud 
  item = CreateXMLNode(mainNode, "Animal 1") 
  ;SetXMLNodeName(item, "Animal 1") 
  SetXMLAttribute(item, "id", "1") 
  SetXMLNodeText(item, "Elephant") 
  
  ; Création du second noeud
  item = CreateXMLNode(mainNode, "Animal 2") 
  ;SetXMLNodeName(item, "Animal 2") 
  SetXMLAttribute(item, "id", "2") 
  SetXMLNodeText(item, "Tigre") 
  
  ; Enregistre l'arbre XML dans le fichier spécifié. 
  SaveXML(xml, "c:\demo.xml")
  RunProgram("c:\demo.xml")
PAS ERREUR

Code : Tout sélectionner

 ; Création d'un arbre xml 
  xml = CreateXML(#PB_Any) 
  mainNode = CreateXMLNode(RootXMLNode(xml), "Zoo") 
  SetXMLNodeName(mainNode, "Zoo") 
  
  ; Création du premier noeud 
  item = CreateXMLNode(mainNode, "Animal 1") 
  SetXMLNodeName(item, "Animal1") 
  SetXMLAttribute(item, "id", "1") 
  SetXMLNodeText(item, "Elephant") 
  
  ; Création du second noeud
  item = CreateXMLNode(mainNode, "Animal 2") 
  SetXMLNodeName(item, "Animal2") 
  SetXMLAttribute(item, "id", "2") 
  SetXMLNodeText(item, "Tigre") 
  
  ; Enregistre l'arbre XML dans le fichier spécifié. 
  SaveXML(xml, "c:\demo.xml")
  RunProgram("c:\demo.xml")

M.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Bug dans XML ?

Message par falsam »

Bonjour mesa. Un nom d'élément obéi à quelques règles comme par exemple ne pas contenir d'espace.

En fonction des navigateurs tu aurais du avoir
- FireFox :Erreur d'analyse XML : mal formé
- Chrome & Opera : error on line 1 at column 49: error parsing attribute name
- IE n'affiche rien mais la console du navigateur affiche XML5656: Caractère de nom qualifié non conforme. demo.xml (1,52)

Pour résumé : ce n'est pas un bug de PureBasic.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Bug dans XML ?

Message par Mesa »

Ah oui, je n'avais pas fait gaffe.
Après une petite recherche, voici ce que j'ai trouvé:
Pour rappel, d'après le standard XML, le nom (name) d'un noeud doit suivre les règles suivantes:
- Sensible à la casse
- Doit commencer par une lettre ou un soulignement '_'
- Ne doit pas commencer par XML et ses déclinaison (Xml, xml, etc)
- Sont autorisés les lettres, chiffres, tiret '-' ou point '.' mais pas '!"#$%&'()*+,/;<=>?@[\]^`{|}~'
- Les espaces sont interdits
De plus, il est déconseillé d'utiliser le tiret et le point car ils peuvent être mal interprétés par certains programmes anciens.

M.
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Bug dans XML ?

Message par Mesa »

Mesa a écrit :Ah oui, je n'avais pas fait gaffe.
Après une petite recherche, voici ce que j'ai trouvé:
Pour rappel, d'après le standard XML, le nom (name) d'un noeud doit suivre les règles suivantes:
- Sensible à la casse
- Doit commencer par une lettre ou un soulignement '_'
- Ne doit pas commencer par XML et ses déclinaison (Xml, xml, etc)
- Sont autorisés les lettres, chiffres, tiret '-' ou point '.' mais pas '!"#$%&'()*+,/;<=>?@[\]^`{|}~'
- Les espaces sont interdits
De plus, il est déconseillé de ne pas utiliser le tiret et le point car ils peuvent être mal interprétés par certains programmes anciens.

M.
Répondre