在.value()调用中引用同级的值?

时间:2019-09-26 22:34:03

标签: sql sql-server xpath sqlxml

我正在尝试基于同级元素的值从xml文档中获取元素的值。

例如,<data>有一系列<questions>,每个<questions>有一系列<answers>和一个<answer>,其中包含答案的索引该人已选择。

我要问的是我的集合中是否有<questions>指向某个<answer>条目中有一个<answers>的{​​{1}}值是“ true”。现在,我只是在乎其中一个问题的答案是否正确。

<isCorrect>

这就是我要做的:

<data> <questions> <isGraded>true</isGraded> <answers> <title>first answer</title> <isCorrect>true</isCorrect> </answers> <answers> <title>second answer</title> <isCorrect>false</isCorrect> </answers> <answer>1</answer> </questions> <questions> <isGraded>true</isGraded> <answers> <title>first answer</title> <isCorrect>false</isCorrect> </answers> <answers> <title>second answer</title> <isCorrect>true</isCorrect> </answers> <answer>0</answer> </questions> </data>

如果我用SET @myValue = @myDoc.value('(/data//questions[isGraded[1]="true"]/child::answers[position() = parent::answer+1][isCorrect="true"])[1]','nvarchar(max)')中的值替换“ parent :: answer + 1”部分,则会得到所需的值,但是我不知道如何自动查看{{ 1}}元素很有价值。

或者这甚至有可能吗?

0 个答案:

没有答案