Mercurial > pub > dyncall > bindings
diff R/rdyncall/demo/expat.R @ 0:0cfcc391201f
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:26:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/R/rdyncall/demo/expat.R Thu Mar 19 22:26:28 2015 +0100 @@ -0,0 +1,33 @@ +# Package: rdyncall +# File: demo/expat.R +# Description: Parsing XML using expat and callbacks + +dynport(expat) + +parser <- XML_ParserCreate(NULL) + +onXMLStartTag <- function(user,tag,attr) +{ + # as.character( as.cstrptrarray(attr) ) + cat("Start tag:", tag, "\n") +} + +onXMLEndTag <- function(user,tag) +{ + cat("End tag:",tag, "\n") +} + +cb.onstart <- new.callback("pZp)v", onXMLStartTag ) +cb.onstop <- new.callback("pZ)v", onXMLEndTag ) + +XML_SetElementHandler( parser, cb.onstart, cb.onstop ) + +text <- " +<hello> + <world> + </world> +</hello> +" + +XML_Parse( parser, text, nchar(text), 1) +