2011-12-04 14 views
10

Estoy trabajando con algunos datos XML en R y con errores relacionados con el tipo 'externalptr'.error 'externalptr' en R usando datos XML

1) Recibo el siguiente error cuando trato de usar la función xmlInternalTreeParse() (parte del paquete XML).

doc = xmlInternalTreeParse(xmldatavariable) 
    'Error in as.vector(x, "character") : cannot coerce type 'externalptr' 
to vector of type 'character'' 

2) me sale este error cuando trato de escribir los datos XML en un archivo de texto para que pueda mirar y ver lo que podría ser el error.

write(xmldatavariable,"sample.txt") 
Error in cat(list(...), file, sep, fill, labels, append) : 
     argument 1 (type 'externalptr') cannot be handled by 'cat' 

¿Alguna sugerencia? Gracias - Z

+0

¿Qué problema hay con el código de trabajo que obtuvo en su última pregunta? ¿No estás simplemente usándolo de la manera incorrecta? –

+0

El código de la última pregunta funcionó para los datos de muestra. No está funcionando en el programa más grande con datos reales. Estoy seguro de que lo estoy usando de la manera incorrecta, simplemente no sé lo que estoy haciendo mal. – user1080253

+3

Es posible que desee trabajar con algunos ejemplos del paquete XML. –

Respuesta

5

El paquete XML funciona haciendo que el documento de puntero del documento XML intente manipularse.

Los 'externalptr' son simplemente punteros externos a los datos dentro del documento xml.

Para acceder a los datos que necesita para usar

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]]) 

Es necesario acceder a cada nodo del XML como una lista.

2

me las arreglé para escribir el contenido de un árbol XML en un archivo utilizando el comando saveXML() del paquete XML:

saveXML(xml[[1]], file="output.xml") 

Espero que esto ayude.

Cuestiones relacionadas