Ошибка "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")

Надеюсь, что это поможет.