Я предоставляю пользователям инструмента, над которым мы работаем, возможность вычисления переменных. Значения вычисляются с помощью выражения XPath. В .Net, с саксонской библиотекой, можно вычислить значение, выполнив выражение XPath в контексте значения, которое нужно вычислить.SQL Server XML.value node node
Пример XML:
@data = '<Object>
<Parameters>
<Parameter Name="a">2</Parameter>
<Parameter Name="b">5</Parameter>
<Parameter Name="c"/>
</Parameters>
</Object>'
Пример XPath-выражение в контексте параметра с именем "C":
../Parameter[@Name="a"]/text() + ../Parameter[@Name="b"]/text()
Это Виль результат 7;)
Я хотел бы выполнить команду XPath на SQL Server, но теперь есть идея, как изменить контекстный узел типа XML?
Возможно, что я добавлю XPath перед выражением, которое изменяет контекст, но не нашел, если это возможно. Запрос может выглядеть так:
/<go to node variable "c" and make this the context node>
../Parameter[@Name="a"]/text() + ../Parameter[@Name="b"]/text()
У кого-то есть хорошие идеи?
Спасибо за ваш ответ. Вы указываете мне на другой вопрос! Saxon XPath не является SQL XPath. Я представил XPath, чтобы освободить руки для реализации других функций вместо того, чтобы сделать свой собственный язык для вычисления переменных. Другим решением может быть использование библиотеки DLL, которая вычисляет выражение на стороне клиента также на сервере ?! –
@MeindertOldenburger, к сожалению все вокруг XML не нормируется чисто ... Ваш комментарий - следующий вопрос, не связанный с этим вопросом. Я действительно думаю, что нет никакого «реального» решения для вашей проблемы ... Поскольку вы новичок в SO, пожалуйста, позвольте мне дать один совет: все профессионалы, дающие ответы на SO, жаждут очков репутации. [Пожалуйста, прочтите это: кто-то-ответы] (http://stackoverflow.com/help/someone-answers). Было бы очень любезно принять этот ответ (поскольку он решает вопрос) и начать новый вопрос со ссылкой здесь. Как только вы набрали более 15 очков: используйте свои голоса! – Shnugo