Ошибка "externalptr" в R с использованием данных XML
Я работаю с некоторыми данными XML в R и сталкиваюсь с ошибками в отношении типа 'externalptr'.
1) Я получаю следующую ошибку, когда пытаюсь использовать функцию xmlInternalTreeParse() (часть пакета XML).
doc = xmlInternalTreeParse(xmldatavariable)
'Error in as.vector(x, "character") : cannot coerce type 'externalptr'
to vector of type 'character''
2) Я получаю эту ошибку, когда пытаюсь записать XML-данные в текстовый файл, чтобы я мог посмотреть на него и посмотреть, что может быть.
write(xmldatavariable,"sample.txt")
Error in cat(list(...), file, sep, fill, labels, append) :
argument 1 (type 'externalptr') cannot be handled by 'cat'
Любые предложения? Спасибо - Z
Ответы
Ответ 1
Пакет XML работает, создавая документ указателя документа XML, который вы пытаетесь манипулировать.
"externalptr" - это просто внешние указатели на данные в документе xml.
Чтобы получить доступ к данным, которые необходимо использовать
Parsed.xml <- xmlTreeParse(xml) ## should be string with xml text
## get value of the first node
xmlValue(xml[[1]])
## get value of the third grandchild of the first node
xmlValue(xml[[1]][[45]][[3]])
Вам нужно получить доступ к каждому node xml в виде списка.
Ответ 2
Мне удалось написать содержимое дерева XML в файл с помощью команды saveXML()
из пакета XML
:
saveXML(xml[[1]], file="output.xml")
Надеюсь, что это поможет.