1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
"[<-.XMLNode" <-
function(x, i, value)
{
x$children[i] <- value
if(!is.character(i)) {
names(x$children)[i] =
if(inherits(value, "XMLNode"))
xmlName(value)
else
sapply(value, xmlName)
}
x
}
"[[<-.XMLNode" <-
function(x, i, value)
{
x$children[[i]] <- value
if(!is.character(i)) {
names(x$children)[i] =
if(inherits(value, "XMLNode"))
xmlName(value)
else
sapply(value, xmlName)
}
x
}
append.xmlNode <-
function(to, ...)
{
UseMethod("append.xmlNode")
}
append.XMLNode <-
function(to, ...)
{
args <- list(...)
if(!inherits(args[[1]], "XMLNode") && is.list(args[[1]]))
args <- args[[1]]
idx <- seq(length(to$children) + 1, length=length(args))
args = addNames(args)
if(is.null(to$children))
to$children <- args
else {
to$children[idx] <- args
names(to$children)[idx] <- names(args)
}
to
}
append.xmlNode.default <-
function(to, ...)
base::append(to, ...)
if(FALSE) {
xmlAddChild <-
function(node, child) {
node$children <- append(node$children, list(child))
names(node$children) <- sapply(node$children,xmlName)
node
}
}
|