Используя пакет httr, я извлек содержимое из API следующим образом. полученное содержимое - «text / xml». Выходные данные снизу вставляются в конце. Я преобразовал в xml следующим образом
res_xml <- httr::content(res, as = "text", encoding = "UTF-8") %>%
xml2::read_xml()
Когда я проверял дочерние элементы, он, кажется, имеет node_set
xml_children(res_xml )
{xml_nodeset (4)}
[1] <type value="searchset"/>
[2] <total value="1"/>
[3] <link>\n <relation value="self"/>\n <url value= ...
[4] <entry>\n <link>\n <relation value="self"/>\n ...
Но, когда я вытягиваю узел "entry", кажется, что нетданные.
xml_find_all(res_xml ,".//entry")
{xml_nodeset (0)}
Вместо работы с форматом xml я преобразовал в список, и это полные вложенные списки списков с неравными записями.
xml_list <- xml2::as_list(res_xml)
Мне понадобится кадр данных для конкретногозаписи или, что более благоприятно, завершают вывод в формате xml в виде отдельных таблиц, так что я могу выбрать данные, с которыми я могу работать намного проще. Следовательно, попробовал следующее. Но все выходные данные равны NULL.
lst <- xml_list$Bundle$entry
lst %>% dplyr::bind_rows()
# A tibble: 17 x 4
relation url Patient mode
<list> <list> <list> <list>
1 <NULL> <NULL> <list [0]> <NULL>
2 <NULL> <NULL> <named list [1]> <NULL>
3 <NULL> <NULL> <named list [1]> <NULL>
4 <NULL> <NULL> <named list [1]> <NULL>
.....
, когда я заметил, что str (lst) в списке содержит NULL list () и attr (значение). Я заинтересован в значении attr. Если я преобразовываю xml в JSON, все равно NULL.
Любая помощь в том, как правильно сгладить этот список, будет принята с благодарностью. или, что еще лучше, я могу разобрать напрямую с помощью пакета xml2.
входные данные
<Bundle xmlns="\"http://hl7.org/fhir\""><type value="\"searchset\""/><total value="\"1\""/>
<resource>
<Patient><id value="\"TzfXm.YeCZh5GLGCXoCQqmjyn9vSjtJtIlcakCeyfbEcB\""/>
<extension url="\"http://hl7.org/fhir/StructureDefinition/us-core-race\"">
<valueCodeableConcept>
<coding><system value="\"urn:oid:2.16.840.1.113883.5.104\""/><code value="\"UNK\""/><display value="\"Unknown\""/></coding><text value="\"Unknown\""/></valueCodeableConcept>
</extension>
<extension url="\"http://hl7.org/fhir/StructureDefinition/us-core-ethnicity\"">
<valueCodeableConcept>
<coding><system value="\"urn:oid:2.16.840.1.113883.5.50\""/><code value="\"UNK\""/><display value="\"Unknown\""/></coding><text value="\"Unknown\""/></valueCodeableConcept>
</extension>
<extension url="\"http://hl7.org/fhir/StructureDefinition/us-core-birth-sex\"">
<valueCodeableConcept>
<coding><system value="\"http://hl7.org/fhir/v3/AdministrativeGender\""/><code value="\"F\""/><display value="\"Female\""/></coding><text value="\"Female\""/></valueCodeableConcept>
</extension>
<identifier><use value="\"usual\""/><system value="\"urn:oid:1.2.840.114350.1.13.172.3.7.5.737384.0\""/><value value="\"E296\""/></identifier>
<identifier><use value="\"usual\""/><system value="\"urn:oid:1.2.840.114350.1.13.172.2.7.5.737384.100\""/><value value="\"410000236\""/></identifier><active value="\"true\""/>
<name><use value="\"usual\""/><text value="\"Mother Milltest\""/><family value="\"Milltest\""/><given value="\"Mother\""/></name><gender value="\"female\""/><birthDate value="\"1978-05-06\""/><deceasedBoolean value="\"false\""/></Patient>
</resource>
<search><mode value="\"match\""/></search>
</entry>
</Bundle>