A closure containing simple functions for the different types of events potentially called by the xmlEventParse, and some tag-specific functions to illustrate how one can add functions for specific DTDs and XML element types. Contains a local list which can be mutated by invocations of the closure's function.

xmlHandler()

Value

List containing the functions enumerated in the closure definition along with the list.

Author

Duncan Temple Lang

Note

This is just an example.

Examples

if (FALSE) { # \dontrun{
xmlURL <- "https://www.omegahat.net/Scripts/Data/mtcars.xml"
xmlText <- paste(scan(xmlURL, what="", sep="\n"),"\n",collapse="\n")
} # }

xmlURL <- system.file("exampleData", "mtcars.xml", package="XML")
xmlText <- paste(readLines(xmlURL), "\n", collapse="")
xmlEventParse(xmlText, handlers = NULL, asText=TRUE)
xmlEventParse(xmlText, xmlHandler(), useTagName=TRUE, asText=TRUE)
#> comment  Taken from the R distribution, in turn taken from Henderson and Velleman 1981,  
#>      Building multiple regression models interactively, Biometrics 37 391-411 .   
#>  
#> MyText:  
#> MyText:  
#> MyText: mpg 
#> MyText:  
#> MyText: cyl 
#> MyText:  
#> MyText: disp 
#> MyText:  
#> MyText: hp 
#> MyText:  
#> MyText: drat 
#> MyText:  
#> MyText: wt 
#> MyText:  
#> MyText: qsec 
#> MyText:  
#> MyText: vs 
#> MyText:  
#> MyText: am 
#> MyText:  
#> MyText: gear 
#> MyText:  
#> MyText: carb 
#> MyText:  
#> MyText:  
#> MyText: 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 
#> MyText:  
#> MyText: 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 
#> MyText:  
#> MyText: 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 
#> MyText:  
#> MyText: 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 
#> MyText:  
#> MyText: 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2 
#> MyText:  
#> MyText: 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1 
#> MyText:  
#> MyText: 14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4 
#> MyText:  
#> MyText: 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2 
#> MyText:  
#> MyText: 22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2 
#> MyText:  
#> MyText: 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4 
#> MyText:  
#> MyText: 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4 
#> MyText:  
#> MyText: 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3 
#> MyText:  
#> MyText: 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3 
#> MyText:  
#> MyText: 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3 
#> MyText:  
#> MyText: 10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4 
#> MyText:  
#> MyText: 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4 
#> MyText:  
#> MyText: 14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4 
#> MyText:  
#> MyText: 32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1 
#> MyText:  
#> MyText: 30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2 
#> MyText:  
#> MyText: 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1 
#> MyText:  
#> MyText: 21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1 
#> MyText:  
#> MyText: 15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2 
#> MyText:  
#> MyText: 15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2 
#> MyText:  
#> MyText: 13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4 
#> MyText:  
#> MyText: 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2 
#> MyText:  
#> MyText: 27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1 
#> MyText:  
#> MyText: 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2 
#> MyText:  
#> MyText: 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2 
#> MyText:  
#> MyText: 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4 
#> MyText:  
#> MyText: 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6 
#> MyText:  
#> MyText: 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8 
#> MyText:  
#> MyText: 21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2 
#> MyText:  
#> $startElement
#> function (name, atts, ...) 
#> {
#>     if (is.null(atts)) 
#>         atts <- list()
#>     data[[name]] <<- atts
#> }
#> <bytecode: 0x56312cdb21b0>
#> <environment: 0x56312cdafd88>
#> 
#> $getData
#> function () 
#> {
#>     data
#> }
#> <bytecode: 0x56312cdafc38>
#> <environment: 0x56312cdafd88>
#> 
#> $comment
#> function (x, ...) 
#> {
#>     cat("comment", x, "\n")
#> }
#> <bytecode: 0x56312cdb2ae0>
#> <environment: 0x56312cdafd88>
#> 
#> $externalEntity
#> function (ctxt, baseURI, sysId, publicId, ...) 
#> {
#>     cat("externalEntity", ctxt, baseURI, sysId, publicId, "\n")
#> }
#> <bytecode: 0x56312cdb2e28>
#> <environment: 0x56312cdafd88>
#> 
#> $entityDeclaration
#> function (name, baseURI, sysId, publicId, notation, ...) 
#> {
#>     cat("externalEntity", name, baseURI, sysId, publicId, notation, 
#>         "\n")
#> }
#> <bytecode: 0x56312cdaf570>
#> <environment: 0x56312cdafd88>
#> 
#> $text
#> function (x, ...) 
#> {
#>     cat("MyText:", x, "\n")
#> }
#> <bytecode: 0x56312cdb2840>
#> <environment: 0x56312cdafd88>
#> 
#> $foo
#> function (x, attrs, ...) 
#> {
#>     cat("In foo\n")
#> }
#> <bytecode: 0x56312cdafae8>
#> <environment: 0x56312cdafd88>
#>