2011-12-04 16 views
10

Sto lavorando con alcuni dati XML in R e si verificano errori relativi al tipo 'externalptr'.errore 'externalptr' in R utilizzando dati XML

1) Viene visualizzato il seguente errore quando si tenta di utilizzare la funzione xmlInternalTreeParse() (parte del pacchetto XML).

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

2) ottengo questo errore quando provo a scrivere i dati XML in un file di testo in modo da poter guardare e vedere quello che potrebbe essere l'errore.

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

Qualche suggerimento? Grazie - Z

+0

Cosa c'è di sbagliato nel codice di lavoro che hai ricevuto sulla tua ultima domanda? Non lo stai semplicemente usando nel modo sbagliato? –

+0

Il codice dell'ultima domanda ha funzionato per i dati di esempio. Non sta funzionando nel programma più grande con dati reali. Sono sicuro che lo sto usando nel modo sbagliato, semplicemente non so cosa sto facendo male. – user1080253

+3

Si potrebbe voler lavorare con alcuni esempi del pacchetto XML. –

risposta

5

Il pacchetto XML funziona creando un documento puntatore del documento XML che si tenta di manipolare.

"externalptr" sono semplicemente indicatori esterni ai dati all'interno del documento xml.

Per accedere ai dati è necessario utilizzare

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

è necessario accedere a ogni nodo del xml come una lista.

2

sono riuscito a scrivere il contenuto di un albero XML in un file utilizzando il comando saveXML() dal pacchetto XML:

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

Spero che questo aiuti.

Problemi correlati