Я относительно новый в r и xml, поэтому может быть очевидный ответ, который я не мог найти.как сделать двойную петлю в xml с r
Я извлекаю информацию из xml-файла и хочу получать данные от узлов с одинаковым именем, но они принадлежат к разным родительским заметкам, которые также имеют одинаковое имя. Структура такова:
<CropSequenceClass>
<nameCropSequenceClass>
<Description> Name</Description>
<Units>-</Units>
<Name>nameCropSequenceClass</Name>
<Value>1</Value>
</nameCropSequenceClass>
<CropClass>
<name>
<Description>Crop name</Description>
<Units>-</Units>
<Name>name</Name>
<Value>Winter wheat3</Value>
</name>
</CropClass>
<CropClass>
<name>
<Description>Crop name</Description>
<Units>-</Units>
<Name>name</Name>
<Value>Winter wheat2</Value>
</name>
</CropClass>
</CropSequenceClass>
<CropSequenceClass>
<nameCropSequenceClass>
<Description> Name</Description>
<Units>-</Units>
<Name>nameCropSequenceClass</Name>
<Value>2</Value>
</nameCropSequenceClass>
<CropClass>
<name>
<Description>Crop name</Description>
<Units>-</Units>
<Name>name</Name>
<Value>Winter wheat4</Value>
</name>
</CropClass>
<CropClass>
<name>
<Description>Crop name</Description>
<Units>-</Units>
<Name>name</Name>
<Value>Winter wheat5</Value>
</name>
</CropClass>
</CropSequenceClass>
я могу получить все четыре из узлов «CropClass» с getNodeSet и петлей через них, но я врезался в стену, когда я пытаюсь разделить эти узлы вверх в соответствии с их родительских узлов. я пытался получить только первые узлы «CropClass» в один набор узлов, обращаясь к первому набору узлов «CropSequenceClass», как это:
getNodeSet(doc, "//CropSequenceClass[1]/CropClass")
Он работал, я получил два узла. Проблема в том, что я хотел бы пропустить эти узлы CropSequenceClass, чтобы получить все партии узлов CropClass (в этом примере 2 + 2), но если я попробую код ниже, это не сработает:
k <- 1
getNodeSet(doc, "//CropSequenceClass[k]/CropClass")
Я бы мог воспользоваться любой помощью, используя этот синтаксис или обходной путь.