From f412acecc45c85fe6af122fdabb8eb10093659d0 Mon Sep 17 00:00:00 2001 From: Silvan Jegen Date: Sun, 4 Oct 2015 17:44:43 +0200 Subject: Actually keep tags --- unxml.go | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'unxml.go') diff --git a/unxml.go b/unxml.go index 347b139..bf81ec3 100644 --- a/unxml.go +++ b/unxml.go @@ -107,14 +107,32 @@ func (r *Reader) Read(out []byte) (int, error) { } case html.StartTagToken: + raw := r.tokenizer.Raw() + //fmt.Fprintf(os.Stderr, "RawToken: %s\n", raw) + tn, _ := r.tokenizer.TagName() + //fmt.Fprintf(os.Stderr, "TagName: %s\n", tn) + if _, ok := r.tagmap[string(tn)]; ok { + n := copy(out[r.count:], raw) + r.count += n + if n < len(raw) { + r.lastread = raw[n:] + return r.count, nil + } } - //fmt.Printf("TagName: %s\n", tn) case html.EndTagToken: - _, _ = r.tokenizer.TagName() - //fmt.Printf("TagEndName: %s\n", tn) + raw := r.tokenizer.Raw() + tn, _ := r.tokenizer.TagName() + if _, ok := r.tagmap[string(tn)]; ok { + n := copy(out[r.count:], raw) + r.count += n + if n < len(raw) { + r.lastread = raw[n:] + return r.count, nil + } + } } } } -- cgit v1.2.1-18-gbd029