我正在尝试获得xml的良好表示。。。为了简单起见,假设我们有以下xml
<div>
<em>5</em>
<em></em>
<em></em>
<em>A</em>
</div>
理想情况下,我希望将其转换为具有一列的表:
| em |
------
| "5"|
| "" |
| "" |
| "A"|
(我在这里使用引号清楚地表明我也需要空节点)
我尝试了几个xpath查询。。最简单的一个是我用r测试的东西,在这里我会得到
z = read_xml("<div>
<em>5</em>
<em></em>
<em></em>
<em>A</em>
</div>")
z
xml_find_all(z,"//*[name() = 'em']/text()")
{xml_nodeset (2)}
[1] 5
[2] A
大多数其他问题只涉及检测空/非空单元格。。或者选择第一个非空的。。但我不知道我怎么用这个。
我的一个想法是尝试使用concat。。。向所有节点(包括空节点)添加一些字符串。但是,这是一个XPath2.0解决方案(afaik),这将不是一个可行的解决方案。
最终的解决方案(从这个xml中提取信息)将在hive中实现。我使用一些serde功能来获取信息。。然后存储为数组。。然后我想把它转换成一个普通的表。。但如果由于长度差异而未检索到缺少的值,则这是不可能的
1条答案
按热度按时间3pmvbmvn1#
在
R
你可以做:或者,如果没有管道: