Обработка XML База данных в R - как работать с отсутствующими узлами - PullRequest
0 голосов
/ 25 мая 2020

У меня есть база данных XML, структура которой такая:

<Record>
    <Id>
      {text}
         <AdresDoDoreczen>
                <Miejscowosc>
                  {text}
                <Budynek>
                  {text}
                <KodPocztowy>
                  {text}
                <Poczta>
                  {text}
                <Gmina>
                  {text}
                <Powiat>
                  {text}
                <Wojewodztwo>
                  {text}

Я использую следующий код:

require(xml2)

file <- "file.xml"
doc <- read_xml(file, useInternalNodes = TRUE) 
column1 = xml_text(xml_find_all(doc, '//AdresDoDoreczen/Miejscowosc'))

Применение этого кода к другим узлам (Budynek, Powiat , Gmina) дает мне несколько векторов / столбцов, которые я могу объединить с matrix() и сохранить как .csv.

К сожалению, в некоторых из этих записей отсутствуют некоторые узлы, поэтому xml_find_all(doc, '//AdresDoDoreczen/Gmina') дает мне не 100 записей, а 95. Он отлично работает, когда узел "Gmina" пуст, но когда он вообще не существует - у меня проблема, потому что тогда вся векторная матрица не выровнена.

Есть идеи, как поступить с этими?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...