2009-08-07 8 views
2

J'ai une question pour les caractères spéciaux de document XML, j'utilise & sur la valeur de l'élément en XML et TXMLDoc Delphi parser se plaint à ce sujet.Documents XML et & char?

Je recherche pour certaines options d'analyse XML, mais aucun d'entre eux en ce qui concerne les caractères spéciaux,

des idées?

Exemple:

<Configuration> 
     <Configuration_item> 
     <view_name value="some view & name"/> 

.... 

Regards, Mika

Répondre

8

Utilisation &amp; pour représenter une esperluette. La raison pour laquelle vous devez faire ceci est que & est un caractère spécial dans XML - spécifiquement, le caractère utilisé pour indiquer le début d'une entité XML, qui est utilisé pour spécifier des caractères dans le contenu qui serait (ironiquement) autrement spécial/complexe personnages.

<view_name value="some view &amp; name"/> 

Autres entités XML commun:

  • »est &quot;
  • < est &lt; (abréviation de moins que)
  • est &gt; (abréviation de plus-que)

Pour plus d'informations:

http://www.xml.com/pub/a/2001/01/31/qanda.html

+0

wow man, c'était rapide, j'étais encore en train d'éditer le post, et correct! Merci! – blackuprise

4

&, < et > sont les caractères spéciaux que vous aurez envie de surveiller, et dans un attribut aussi ". & est un peu comme le caractère d'échappement XML.

Ils peuvent être échappés ainsi:

  • & =>&amp;
  • < =>&lt;
  • > =>&gt;
  • " =>&quot;

(En fait, et bizarrement, vous n'avez pas vraiment besoin d'échapper > dans un attribut, seulement <. En outre, si vous utilisez ' au lieu de " pour vos délimiteurs d'attribut, au lieu d'avoir à échapper " comme &quot; vous devez échapper ' comme &apos;. Voir la référence AttValue dans la spécification XML pour plus de détails.)

2

Dav et Lavinio ont raison.

Si vous avez un bloc de texte avec beaucoup de caractères spéciaux, vous pouvez le placer dans CDATA à la place.

+0

REMARQUE: Vous ne pouvez pas utiliser CDATA pour les valeurs d'attribut, uniquement pour les blocs de texte entre les balises. –

Questions connexes