xquery中输入为变量时如何按位置选择元素?

问题描述 投票:0回答:1

我有一个名为 VariableInput 的变量,我们将完整的 XML 存储到该 VariableInput 中。 XML 负载如下所示

<MaterialList>
        <Material>
            <Number>12345678</Number>
            <Name>ABC</Name>
            <Phone>7000049851</Phone>
            <MID>123</MID>              
        </Material>
        <Material>
            <Number>1111111</Number>
            <Name>DEF</Name>
            <Phone>7000049852</Phone>
            <MID>345</MID>
                    </Material>             
<MaterialList>

现在我想使用这个 Vaeriable (VariableInput) 获取数字 1111111。请在这里帮助我

我尝试给予 $input.VariableInput/:MaterialList/:Material/*[position() = 2] 和 doc("$input.VariableInput")/MaterialList/Material/Number[2] 但没有作用

variables input fetch position xquery
1个回答
0
投票

这完全取决于变量的绑定方式,例如,如果您绑定所需的元素

let $xml := <MaterialList>
        <Material>
            <Number>12345678</Number>
            <Name>ABC</Name>
            <Phone>7000049851</Phone>
            <MID>123</MID>              
        </Material>
        <Material>
            <Number>1111111</Number>
            <Name>DEF</Name>
            <Phone>7000049852</Phone>
            <MID>345</MID>
        </Material>             
    </MaterialList>
return $xml/Material[2]/Number

如果您将该 XML 绑定为您需要的文档,例如

let $xml := document { <MaterialList>
        <Material>
            <Number>12345678</Number>
            <Name>ABC</Name>
            <Phone>7000049851</Phone>
            <MID>123</MID>              
        </Material>
        <Material>
            <Number>1111111</Number>
            <Name>DEF</Name>
            <Phone>7000049852</Phone>
            <MID>345</MID>
        </Material>             
    </MaterialList>
}
return $xml/MaterialList/Material[2]/Number

因此,您需要更好地解释在哪个环境中以及如何绑定变量以及如何键入变量。

© www.soinside.com 2019 - 2024. All rights reserved.