у меня есть 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
Есть только два решения, которые я мог бы придумать с помощью xml2:
(a) создайте набор дочерних узлов с помощью xml_find_all (...), а затем используйте цикл for для перемещения по структуре xml для получения необходимой информации. Очевидно, что крайне неэффективно.
(б) получить набор родительских узлов и набор дочерних узлов для каждого. Извлеките информацию из родительского набора и посчитайте, сколько детей имеет каждый родитель. Затем использовал rep (информация, no_of_children) для заполнения столбца node_id сверху. Лучше, но все равно глупо.
Я полагаю, должен быть более эффективный способ? Я рад любому предложению, поскольку я использую эти подходы уже более месяца, имея дело с гигабитами - очень неэффективных - структур данных в формате xml. Я также не ограничен использованием xml2 и могу переключиться на другой язык программирования, если это резко повысит производительность. Единственная важная часть - это то, что я хотел бы загрузить данные прямо оттуда в базу данных.