提问人:AdzzzUK 提问时间:10/4/2022 更新时间:10/4/2022 访问量:37
包含 & 符号的 XML 中断了 SQL XML 架构验证
XML containing Ampersand, breaks SQL XML Schema validation
问:
我有一个存储的进程,它正在接收 XML 作为输入。SQL 中的 XML 架构集合验证收到的 XML。
XML 字符串中引用的项之一是产品代码,这可能包含与号。我在尝试提取数据时尝试获取产品代码时收到错误。这是我目前正在使用的:
DECLARE @cursor CURSOR;
SET @cursor = CURSOR FAST_FORWARD READ_ONLY FOR
SELECT Quotenbr = COALESCE(items.value('(@quotenbr)[1]', 'varchar(25)'), 'Skipped')
, QuotelineItem = COALESCE(items.value('(@quotelineitem)[1]', 'varchar(25)'), 'Skipped')
, Branch = COALESCE(items.value('(@branch)[1]', 'varchar(25)'), 'Skipped')
, Partnbr = items.value('(@partnbr)[1]','varchar(25)') --Part Number can contain & character, which breaks this - need alternate
, Qty = items.value('(@qty)[1]','decimal(9,2)')
, Unit = items.value('(@unit)[1]','nvarchar(25)')
FROM @XMLString.nodes('/request/items/item') AS XTbl(items);
OPEN @cursor;
FETCH NEXT FROM @cursor
INTO @quotenbr
, @quotelineitem
, @Branch
, @Partnbr
, @qty
, @unit;
代码无法正确处理 Partnbr 输入。当字符串包含 & 号时,我能做些什么让 partnbr 不中断吗?
我假设架构验证元素正在将 & 换成“&+amp;” - 有没有办法解决这个问题?
答: 暂无答案
评论
&
&