Я пытаюсь выбрать текстовые узлы элемента Lookup.Result из следующего XML-документа с использованием XPath на сервере Sql.Выберите узлы xml с точкой в имени с помощью XPath
<Commands>
<Command id="1">
<Lookup.Result>Result.OK</Lookup.Result>
</Command>
</Commands>
Я пытаюсь следующий запрос:
declare @xml xml
set @xml = '<Commands>
<Command id="1">
<Lookup.Result>Result.OK</Lookup.Result>
</Command>
</Commands>
'
select t.c.value('./Lookup.Result/text()[1]', 'varchar(20)')
from @xml.nodes('/Commands/Command') t(c)
, но я получаю следующее сообщение об ошибке: XQuery [значение()]: ошибка синтаксиса около 'Поиск'
Как я могу избежать. (точка в имени тега Lookup.Result) в выражении XPath? Пожалуйста, помогите найти элегантное решение этой проблемы. Заранее благодарю вас за ваше время.
Вы правы. Есть так много комбинаций при отладке, что я обрезал круглые скобки в одном из них ... :)) Теперь он работает. Может показаться, что точка всегда интерпретируется как текущий узел, но кажется, что в некоторых ситуациях это считается просто текстом. Спасибо. – Vakho
@ пользователь2248972 без проблем. Вы можете пометить ответ как принятый, если хотите. – Filip