【发布时间】:2018-04-07 10:41:13
【问题描述】:
我的 xml 看起来像这样:
...
<node id=1>
<child>a</child>
<child>b</child>
<child>c</child>
</node>
<node id=2>
<child>d</child>
<child>e</child>
</node>
...
我正在寻找的是一个引用孩子各自父母的 data.frame:
node_id child_text
1 a
1 b
1 c
2 d
2 e
我只能想到 2 个使用 xml2 的解决方案:
(a) 使用 xml_find_all(...) 创建一组子节点,然后使用 for 循环遍历 xml 结构以获取所需信息。显然效率极低。
(b) 得到一组父节点和一组子节点。从父集合中提取信息并计算每个父母有多少个孩子。然后使用 rep(information, no_of_children) 从上面填充 node_id 列。更好,但仍然很愚蠢。
我认为必须有更有效的方法?我很高兴有任何建议,因为我现在使用这些方法一个多月了,同时处理千兆位的 - 效率极低的 - xml 格式的数据结构。我也不限于使用 xml2,如果这会大大提高性能,我还可以切换到另一种编程语言。唯一重要的部分是我想从那里直接将数据加载到数据库中。
【问题讨论】: