У меня есть xml, хранящийся в переменной.мой xml имеет один пустой узел, который не позволяет мне запускать код.когда я выполняю свой код выше, я получаю эту ошибку.
Сообщение 9436, Уровень 16, Состояние 1, Строка 2 Синтаксический анализ XML: строка 12, символ 15, конечный тег не соответствует начальному тегу
DECLARE @INPUTXML XML =
'<Lineitems>
<Lineitem>
<Ticker>TER</Ticker>
<ID>0</ID>
<LineItem>Net Revenue</LineItem>
<XFundCode>TRIN</XFundCode>
<UserID>TDP</UserID>
</Lineitem>
<Lineitem>
<Ticker>TER</Ticker>
<ID>0</ID>
</LineItem>
<XFundCode>XXP</XFundCode>
<UserID>TDP</UserID>
</Lineitem>
</Lineitems>';
DECLARE @Ticker AS VARCHAR(MAX)
, @ID AS INT
, @Lineitem AS VARCHAR(MAX)
, @XFundCode AS VARCHAR(MAX)
, @UserID AS VARCHAR(MAX);
-- count total number of items
DECLARE @i INT
, @cnt INT = @INPUTXML.value('count(/Lineitems/Lineitem)', 'INT');
-- loop through XML item by item
SET @i = 1;
WHILE @i <= @cnt
BEGIN
SELECT @Ticker = col.value('(Ticker/text())[1]','VARCHAR(MAX)')
, @ID = col.value('(ID/text())[1]','INT')
, @Lineitem = nullif('',col.value('(LineItem/text())[1]','VARCHAR(MAX)'))
, @XFundCode = col.value('(XFundCode/text())[1]','VARCHAR(MAX)')
, @UserID = col.value('(UserID/text())[1]','VARCHAR(MAX)')
FROM @INPUTXML.nodes('/Lineitems/Lineitem[position() = sql:variable("@i")]') AS tab(col);
-- do whatever needed in the loop here
Print @Lineitem
SET @i += 1;
END