2011-12-04 38 views
10

Tôi đang làm việc với một số dữ liệu XML trong R và chạy vào các lỗi liên quan đến loại 'externalptr'.lỗi 'externalptr' trong R khi sử dụng dữ liệu XML

1) Tôi nhận được lỗi sau khi tôi cố gắng sử dụng hàm xmlInternalTreeParse() (một phần của gói XML).

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

2) Tôi nhận được lỗi này khi tôi cố gắng ghi dữ liệu XML vào tệp văn bản để tôi có thể xem và xem lỗi có thể là gì.

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

Mọi đề xuất? Thanks - Z

+0

Điều gì sai với mã làm việc mà bạn có trong câu hỏi cuối cùng? Không phải bạn chỉ đơn giản là sử dụng nó một cách sai lầm? –

+0

Mã từ câu hỏi cuối cùng làm việc cho dữ liệu mẫu. Nó không hoạt động trong chương trình lớn hơn với dữ liệu thực. Tôi chắc chắn rằng tôi đang sử dụng nó một cách sai lầm, tôi chỉ không biết những gì tôi đang làm sai. – user1080253

+3

Bạn có thể muốn làm việc thông qua một số ví dụ về gói XML. –

Trả lời

5

Gói XML hoạt động bằng cách tạo tài liệu con trỏ của tài liệu XML mà bạn đang cố gắng thao tác.

'Externalptr' chỉ đơn giản là con trỏ bên ngoài vào dữ liệu trong tài liệu xml.

Để truy cập vào dữ liệu bạn cần phải sử dụng

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

Bạn cần phải truy cập mỗi nút của xml như một danh sách.

2

tôi quản lý để viết nội dung của một cây XML vào một tập tin bằng cách sử dụng lệnh saveXML() từ gói XML:

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

Hope this helps.

Các vấn đề liên quan