在此XML示例中,我想要在使用XPath的Attr_1="A"
(显示str1234
)时获取值attribute
Attr_2
。在attribute2值(使用XPath)时获取attribute1值
<ROOT>
<ELEM_1 Attr_1 = "A" Attr_2 = "str1234" />
<ELEM_1 Attr_1 = "B" Attr_2 = "str5678" />
</ROOT>
在此XML示例中,我想要在使用XPath的Attr_1="A"
(显示str1234
)时获取值attribute
Attr_2
。在attribute2值(使用XPath)时获取attribute1值
<ROOT>
<ELEM_1 Attr_1 = "A" Attr_2 = "str1234" />
<ELEM_1 Attr_1 = "B" Attr_2 = "str5678" />
</ROOT>
的XPath这是'/ROOT/ELEM_1[@Attr_1 = "A"]/@Attr_2'
但是,如果你想在Oracle数据库做你必须使用xmltable或xmlquery。
select * from xmltable('ROOT/ELEM_1[@Attr_1 = "A"]/@Attr_2' passing xmltype('
<ROOT>
<ELEM_1 Attr_1 = "A" Attr_2 = "str1234" />
<ELEM_1 Attr_1 = "B" Attr_2 = "str5678" />
<ELEM_1 Attr_1 = "A" Attr_2 = "next_value" />
</ROOT>')
columns attr2 varchar2(100) path '.');
尝试以下
/ROOT/ELEM_1[1] -> it will return str1234
/ROOT/ELEM_1[2] -> it will return str5678
OR
(/ROOT/ELEM_1)[1] -> it will return str1234
(/ROOT/ELEM_1)[2] -> it will return str5678
OR
/ROOT/ELEM_1[1]/@Attr_1 -> it will return A
/ROOT/ELEM_1[2]/@Attr_1 -> it will return B
OR
/ROOT/ELEM_1[@Attr_1='A']/@Attr_2 -> It will return str1234
/ROOT/ELEM_1[@Attr_1='B']/@Attr_2 -> It will return str5678
希望它会帮助你:)
thx为您的答复,但在你的答案为什么它返回attr_2的值而不是attr_1没有在XPATH中指定的值? –
更新了我的回答 –
发生了什么事情,它不适合你? ..你只是不接受答案 –
如果我的答案有助于解决您的问题,请点击我的答案左侧的正确标记接受答案,正下方的上下选票。请投票了..它将真正帮助我和其他人谁将在未来提及这个问题..这是如何stackoverflow工作:) ...参考: - https://meta.stackexchange.com/questions/5234/如何接受答案工作 –