Utiliser l'esperluette dans la distribution en SQL
L'extrait de code suivant sur SQL server 2005 échoue sur l'esperluette " &":
select cast('<name>Spolsky & Atwood</name>' as xml)
Quelqu'un sait-il une solution?
Plus d'explication, j'ai besoin de mettre à jour des données dans une colonne XML, et je suis en utilisant une recherche & remplacement type de hack en jetant le XML de la valeur à une colonne de type varchar, faire le remplacement et la mise à jour de la colonne XML avec cette distribution.
N'2005 ont un type XML, vraiment? Pourquoi?
Que voulez-vous dire "pourquoi"? Afin de fournir une syntaxe XML, afin de permettre la manipulation par l'intermédiaire de XQuery, pour permettre l'index XML, afin de permettre une validation par rapport à des ensembles de schémas, ...
Que voulez-vous dire "pourquoi"? Afin de fournir une syntaxe XML, afin de permettre la manipulation par l'intermédiaire de XQuery, pour permettre l'index XML, afin de permettre une validation par rapport à des ensembles de schémas, ...
OriginalL'auteur edosoft | 2009-07-13
Vous devez vous connecter pour publier un commentaire.
Un littéral esperluette à l'intérieur d'un
XML
balise n'est pas autorisé par laXML
standard, et qu'un tel document ne parviennent pas à analyser en touteXML
analyseur.Un
XMLSerializer()
volonté de sortie de l'esperluetteHTML
codé.Le code suivant:
permettra de sortie suivants:
avec un
&
au lieu de&
.Si votre XML contient sans échappement &-caractères est fondamentalement XML non valide et vous devriez vraiment travailler sur la fixation de la.
OriginalL'auteur Quassnoi
Il n'est pas valide XML. Utilisation
&
:Semble ok pour moi.
C'est OK dans le code, mais j'ai (peut-être à tort) supposé que vous voulez que le texte à lire "Il n'est pas valide XML. Utiliser "&"".
Liversage & @John Saunders, ouais, je pensais que tu voulais le verbose "&" dans le texte explainning le code...
Vous avez eu raison. Je pensais que vous parliez du code. S'il vous plaît aller de l'avant et de corriger le texte.
OriginalL'auteur John Saunders
Vous auriez besoin de XML échapper le texte, trop.
Donc, nous allons revenir en arrière et supposons que vous êtes la construction de cette chaîne comme:
que vous aimeriez faire quelque chose de plus comme:
Bien sûr, vous probable devrait répondre pour les autres entités ainsi:
OriginalL'auteur Rowland Shaw
Lors de l'utilisation du XML dans SQL vous êtes beaucoup plus en sécurité à l'aide des fonctions intégrées au lieu de convertir manuellement.
Le code suivant va construire une bonne SQL variable XML qui ressemble à votre sortie désirée, basé sur une chaîne brute:
OriginalL'auteur Aaron
John et Quassnoi état,
&
sur son propre n'est pas valide. C'est parce que le caractère est le début d'une entité de caractère utilisée pour spécifier des caractères qui ne peuvent pas être représentés littéralement. Il existe deux formes de l'entité spécifie le personnage par son nom (par exemple,&
, ou"
), et on le spécifie le caractère par son code (je crois que c'est le code de position dans le jeu de caractères Unicode, mais pas sûr. par exemple,"
devrait représenter une double quote).Ainsi, pour inclure un littéral
&
dans un document HTML, vous devez spécifier l'entité:&
. D'autres courants que vous pouvez rencontrer sont<
pour<
,>
pour>
, et"
pour"
.OriginalL'auteur Jason Musgrove