Ziemlich einfache Frage - Ich habe ein Attribut, in dem ich doppelte Anführungszeichen haben möchte. Wie entkomme ich ihnen? ich habe es versucht
- ""
- ""
- \\ "
Und ich habe die Variable @xml sowohl für den XML-Typ als auch für varchar (max) für alle erstellt.
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
Antworten:
Wäre das nicht
"
in XML? dh** bearbeiten: ** getestet; funktioniert gut:
quelle
tSql entgeht einem doppelten Anführungszeichen mit einem anderen doppelten Anführungszeichen. Wenn Sie also möchten, dass es Teil Ihres SQL-String-Literals ist, würden Sie Folgendes tun:
Wenn Sie ein Anführungszeichen in einen Wert in der XML selbst einfügen möchten , verwenden Sie eine Entität, die folgendermaßen aussehen würde:
quelle
Kann nicht mehr kommentieren, stimmte aber ab und wollte die Leute wissen lassen, dass dies
"
sehr gut für die XML-Konfigurationsdateien funktioniert, wenn Regex-Ausdrücke für RegexTransformer in Solr wie folgt erstellt werden:regex=".*img src="(.*)".*"
Verwenden der Escape- Version anstelle von doppelten Anführungszeichen.quelle
In Jelly.core würde man zum Testen einer Literalzeichenfolge Folgendes verwenden:
Aber wenn ich nach der Zeichenfolge "Toy's R Us" suchen muss:
Es wäre so, wenn die doppelten Anführungszeichen drinnen erlaubt wären:
quelle