2010-11-30 16 views
0

Je crée un url et en ajoutant & à cet url.ampli en xml converti en "&"

eg http://xyzc.com/abc.php?arg1=value1&arg2=value2 

Maintenant j'ajoute cet URL à xml. Je crée du XML via tinyxml en C++ et j'ai aussi essayé de créer le même xml en PHP.

Après avoir créé le xml j'ai découvert que « & » est converti en « & »

Est-il correct pour « & » pour se convertir à « & »? Pourquoi cela arrive-t-il ? Et quelle pourrait être la solution possible pour cela?

$strUrl ="http://xyzc.com/abc.php?"; 
$strUrl .="arg1=".$value1; 
$strUrl .="&arg2=".$value2; 

La sortie est à venir comme

http://xyzc.com/abc.php?arg1=10&arg2=100 

Répondre

2

XML a une fonction appelée une référence de caractères (&thingy;)

Par conséquent, doivent être échappés toutes & brutes caractères &
C'est référence de caractère prédéfinie équivalente à & (amp signifie esperluette).

Si vous laissez un & non échappé, le code XML sera incorrect.

Notez que les caractères < bruts doivent également être échappés car &lt; (lt signifie inférieur à).

+0

http://en.wikipedia.org/wiki/Character_encodings_in_HTML#XML_character_references –

+0

J'ai essayé d'utiliser « & » au lieu de « & » mais maintenant je suis obtenir « & ampli » en XML – anand

+1

@Alien: Votre moteur XML échappe à la caractères automatiquement. Vous devriez utiliser '&', et il générera correctement '&'. En d'autres termes, votre code existant est complètement correct. – SLaks