SQL Server 2008: وظيفة استعلام SQLXML.
-
24-09-2019 - |
سؤال
في Microsoft SQL Server 2008 ، عند التنفيذ .query('{xpath}/text()')
على قيمة عمود دفق XML ، إذا كانت قيمة العقدة المحددة XPath تحتوي على "&
"، قيمة الإرجاع"&
" بدلاً من "&
".
هل هذا خطأ ، أم أفعل شيئًا خاطئًا؟ أو بالأحرى ، كيف يمكنني الحصول على النص غير المشفر ، أي ما يعادل .innertext (لكل W3C XML DOM) ، مع SQLXML XPATH إذا لم يكن من المفترض أن يفعل Text () في استعلام XPATH؟
المحلول
لا يوجد خطأ ، SQL XML تدلل تسلسل XML Escape بشكل صحيح:
declare @x xml;
set @x = '<node>&some</node>';
select @x.value(N'(node)[1]', N'varchar(max)');
ما هو على الأرجح مشكلتك هي سوء فهم من جانبك من XML استفسار الطريقة: إنها تُرجع XML شظية ، وعلى هذا النحو ، سيتم هروب ... لأنه XML:
declare @x xml;
set @x = '<node>&some</node>';
select @x.query(N'/node/text()');
لا تنتمي إلى StackOverflow