簡體   English   中英

XQuery:如何從標簽中獲取特定值?

[英]XQuery: How to get a specific value out of a tag?

假設我們有這個 xml:

<question>
    <test id="1">
        <tag k="a" v="1"/>
        <tag k="a" v="2"/>
        <tag k="b" v="3"/>
    </test>
    <test id="2">
        <tag k="a" v="1"/>
        <tag k="a" v="4"/>
        <tag k="b" v="5"/>
    </test>
    <test id="3">
        <tag k="a" v="2"/>
        <tag k="a" v="6"/>
        <tag k="b" v="7"/>
    </test>
</question>

如果 k = "a" AND v = "1",我想返回測試的所有值 v,如下所示:

v="3"
v="5"

到目前為止我的方法:

for $i in //test
where ($i/tag[@k = 'a' and @v = '1'])
return $i/tag/@v

但這是不正確的,因為那是回報:

v="1"
v="2"
v="3"
v="1"
v="4"
v="5"

謝謝您的幫助:)

您可能正在尋找類似的東西

for $i in //test
where  ($i/tag[@k = 'a'][@v="1"])
return $i/tag[@k="b"]/@v

您的選擇標准並不十分清楚,但這會返回您所期望的:

for $i in //test
where $i/tag[@k = 'a' and @v = '1']
return $i/tag[not(@k = 'a' or @v = '1')]/@v

您可以簡化並在單個 XPath 表達式中執行此操作:

//test/tag[@k = 'a' and @v = '1']/tag[not(@k = 'a' or @v = '1')]/@v

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM