Page 1 sur 1

Bug dans XML ?

Publié : ven. 07/août/2015 11:41
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.

Re: Bug dans XML ?

Publié : sam. 08/août/2015 1:27
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.

Re: Bug dans XML ?

Publié : sam. 08/août/2015 8:17
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.

Re: Bug dans XML ?

Publié : dim. 09/août/2015 9:10
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.