Question assez simple: j'ai un attribut dans lequel j'aimerais avoir des guillemets doubles. Comment puis-je y échapper? J'ai essayé
Et j'ai créé la variable @xml à la fois de type xml et de varchar (max) pour chacun d'eux.
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
Ne serait-ce pas "
en XML? c'est à dire.
"hi "mom" lol"
** modifier: ** testé; fonctionne bien:
declare @xml xml
set @xml = '<transaction><item value="hi "mom" lol"
ItemId="106" ItemType="2" instanceId="215923801" dataSetId="1" /></transaction>'
select @xml.value('(//item/@value)[1]','varchar(50)')
tSql échappe à une citation double avec une autre citation double. Donc, si vous vouliez qu'il fasse partie de votre littéral chaîne SQL, procédez comme suit:
declare @xml xml
set @xml = "<transaction><item value=""hi"" /></transaction>"
Si vous souhaitez inclure une citation à l'intérieur d'un valeur dans le xml lui-même, vous utilisez une entité, qui ressemblerait à ceci:
declare @xml xml
set @xml = "<transaction><item value=""hi "mom" lol"" /></transaction>"
Je ne peux plus commenter, mais je l'ai voté et je voulais que les gens sachent que "
fonctionnait très bien pour les fichiers de configuration XML lors de la formation d'expressions regex pour RegexTransformer dans Solr, comme ceci: regex=".*img src="(.*)".*"
en utilisant la version échappée au lieu de double -citations.
Dans Jelly.core, pour tester une chaîne littérale, vous utiliseriez:
<core:when test="${ name == 'ABC' }">
Mais si je dois vérifier la chaîne "Toy's R Us":
<core:when test="${ name == &quot;Toy's R Us&quot; }">
Ce serait comme ça, si les guillemets étaient autorisés à l'intérieur:
<core:when test="${ name == "Toy's R Us" }">