hive xpath获取某些类型元素的数组

时间:2018-04-06 14:02:04

标签: xpath hive

我有一个xml

<d><a><c>1</c><b>2</b><b>3</b></a></d>

我试图返回<b>

的数组
[2,3]

没有<c>。我试过这种方式

select xpath('<d><a><c>1</c><b>2</b><b>3</b></a></d>', "//*[local-name()='a']/*/text()");

但得到了

[1,2,3]

我认为//*[local-name()='a']/b会起作用,但会返回一个空数组。 我怎样才能得到我想要的结果?

2 个答案:

答案 0 :(得分:0)

select xpath('<d><a><c>1</c><b>2</b><b>3</b></a></d>', "//*[local-name()='a']/*[local-name()='b']/text()");

修改

这也有效

"//*[local-name()='b']/text()"

答案 1 :(得分:0)

简单易行:

//b/text()

我测试了它并且有效。enter image description here