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