diff options
-rw-r--r-- | unxml.go | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -51,6 +51,26 @@ func NewReaderKeepTags(r io.Reader, tagstokeep []string) *Reader { } } +func NewReaderKeepElements(r io.Reader, tagstokeep []string) *ElementReader { + var tagmap map[string]bool + + if len(tagstokeep) > 0 { + tagmap = make(map[string]bool, 10) + for _, tag := range tagstokeep { + tagmap[tag] = true + } + } else { + tagmap = nil + } + + return &ElementReader{ + xr: Reader{ + tagmap: tagmap, + tokenizer: html.NewTokenizer(r), + }, + } +} + func (r *Reader) Read(out []byte) (int, error) { var err error |