File: SAXEntity.R

package info (click to toggle)
r-cran-xml 3.99-0.19-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,688 kB
  • sloc: ansic: 6,659; xml: 2,890; asm: 486; sh: 12; makefile: 2
file content (27 lines) | stat: -rw-r--r-- 790 bytes parent folder | download | duplicates (10)
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
entities <- new.env(TRUE)
assign(".text", "", entities)
handlers = list(  
     .entityDeclaration = function(name, type, content, system, public) {
        if((length(content) == 0 || nchar(content) == 0) &&  length(system) > 0) {
            #
          if(file.exists(system))
            content = paste(readLines(system), collapse = "\n")
        }

        if(length(content)) 
          assign(name, content, entities)
        else
          warning("Can't resolve entity ", name)
     },
     .getEntity = function(name) {

       if(exists(name, entities))
         return(get(name, entities))

       return(character())
     },
     .text = function(txt) {
         entities$.text <- paste(entities$.text, txt)
     })

xmlEventParse("entity2.xml", handlers, useDotNames = TRUE)