Question assez simple - j'ai un attribut dans lequel j'aimerais avoir des guillemets. Comment puis-je les échapper? J'ai essayé
- \ "
- ""
- \\ "
Et j'ai créé la variable @xml à la fois de type xml et varchar (max) pour tous.
declare @xml xml --(or varchar(max) tried both)
set @xml = '<transaction><item value="hi "mom" lol"
ItemId="106" ItemType="2" instanceId="215923801" dataSetId="1" /></transaction>'
declare @xh int
exec sp_xml_preparedocument @xh OUTPUT, @xml
insert into @commits --I declare the table, just removed it for brevity
select
x.*
from openxml(@xh,'/transaction/item')
WITH (
dataItemId int,
dataItemType int,
instanceId int,
dataSetId int,
value varchar(max)
) x
Réponses:
Ne serait-ce pas
"
en XML? c'est à dire** modifier: ** testé; fonctionne bien:
la source
Le tSql échappe un guillemet double avec un autre guillemet double. Donc, si vous vouliez qu'il fasse partie de votre littéral de chaîne sql, vous feriez ceci:
Si vous souhaitez inclure une citation à l'intérieur d'une valeur dans le xml lui-même, vous utilisez une entité, qui ressemblerait à ceci:
la source
Je ne peux plus commenter mais j'ai voté et je voulais faire savoir aux gens que cela
"
fonctionne très bien pour les fichiers de configuration xml lors de la formation d'expressions regex pour RegexTransformer dans Solr comme ceci: enregex=".*img src="(.*)".*"
utilisant la version échappée au lieu de guillemets doubles.la source
Dans Jelly.core pour tester une chaîne littérale, on utiliserait:
Mais si je dois vérifier la chaîne "Toy's R Us":
Ce serait comme ceci, si les guillemets étaient autorisés à l'intérieur:
la source