.InitSAXMethods <-
# Defines S4 classes for use with the SAX parser and specifically to do with the
# state variable.
# This also defines methods for the
function(where = "package:XML") {
setClass("SAXState", "VIRTUAL", where = where)
setGeneric("startElement.SAX", function(name, atts, .state = NULL) standardGeneric("startElement.SAX"), where = where)
setGeneric("endElement.SAX", function(name, .state = NULL) { standardGeneric("endElement.SAX")}, where = where)
setGeneric("comment.SAX", function(content, .state = NULL) { standardGeneric("comment.SAX")}, where = where)
# Note that we drop the . here.
setGeneric("text.SAX", function(content, .state = NULL) { standardGeneric("text.SAX")}, where = where)
setGeneric("cdata.SAX", function(content, .state = NULL) { standardGeneric("cdata.SAX")}, where = where)
setGeneric("processingInstruction.SAX", function(target, content, .state = NULL) { standardGeneric("processingInstruction.SAX")}, where = where)
setGeneric("entityDeclaration.SAX", function(name, base, sysId, publicId, notationName, .state = NULL) { standardGeneric("entityDeclaration.SAX")}, where = where)
setMethod("startElement.SAX", signature(.state = "SAXState"),
function(name, atts, .state = NULL) .state, where = where)
setMethod("endElement.SAX", signature(.state = "SAXState"),
function(name, .state = NULL) .state, where = where)
setMethod("comment.SAX", signature(.state = "SAXState"),
function(content, .state = NULL) .state, where = where)
setMethod("text.SAX", signature(.state = "SAXState"),
function(content, .state = NULL) .state, where = where)
setMethod("processingInstruction.SAX", signature(.state = "SAXState"),
function(target, content, .state = NULL) .state, where = where)
setMethod("entityDeclaration.SAX", signature(.state = "SAXState"),
function(name, base, sysId, publicId, notationName, .state = NULL) .state, where = where)
return(TRUE)
}
.useNamespacesInXMLPackage = FALSE
if(!.useNamespacesInXMLPackage) {
setClass("SAXState", "VIRTUAL")
setGeneric("startElement.SAX", function(name, atts, .state = NULL) standardGeneric("startElement.SAX"))
setGeneric("endElement.SAX", function(name, .state = NULL) { standardGeneric("endElement.SAX")})
setGeneric("comment.SAX", function(content, .state = NULL) { standardGeneric("comment.SAX")})
# Note that we drop the . here.
setGeneric("text.SAX", function(content, .state = NULL) { standardGeneric("text.SAX")})
setGeneric("processingInstruction.SAX", function(target, content, .state = NULL) { standardGeneric("processingInstruction.SAX")})
setGeneric("entityDeclaration.SAX", function(name, base, sysId, publicId, notationName, .state = NULL) { standardGeneric("entityDeclaration.SAX")})
setMethod("startElement.SAX", signature(.state = "SAXState"),
function(name, atts, .state = NULL) .state)
setMethod("endElement.SAX", signature(.state = "SAXState"),
function(name, .state = NULL) .state)
setMethod("comment.SAX", signature(.state = "SAXState"),
function(content, .state = NULL) .state)
setMethod("text.SAX", signature(.state = "SAXState"),
function(content, .state = NULL) .state)
setMethod("processingInstruction.SAX", signature(.state = "SAXState"),
function(target, content, .state = NULL) .state)
setMethod("entityDeclaration.SAX", signature(.state = "SAXState"),
function(name, base, sysId, publicId, notationName, .state = NULL) .state)
}
genericSAXHandlers <-
function(include, exclude, useDotNames = FALSE)
{
if(!exists("startElement.SAX"))
stop("You must call .InitSAXMethods before calling genericSAXHandlers()n")
ans <- list(startElement = startElement.SAX,
endElement = endElement.SAX,
comment = comment.SAX,
text = text.SAX,
processingInstruction = processingInstruction.SAX,
entityDeclaration = entityDeclaration.SAX)
if(!missing(include))
ans <- ans[include]
else if(!missing(exclude)) {
which <- match(exclude, names(ans))
ans <- ans[-which]
}
if(useDotNames)
names(ans) = paste(".", names(ans), sep = "")
ans
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.