diff options
| -rw-r--r-- | unxml.go | 24 | 
1 files changed, 21 insertions, 3 deletions
@@ -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 +				} +			}  		}  	}  }  | 
