/* See LICENSE file for copyright and license details. */ package main import ( "bufio" "fmt" "io" "os" "github.com/Shugyousha/unxml" ) func main() { var unxmlreader *bufio.Reader f, err := os.Open(os.Args[1]) if err != nil { fmt.Fprintf(os.Stderr, "Error when opening file: %s\n", err) } //unxmlreader = unxml.NewReaderKeepTags(f, make([]string, 0)) //lineno := 0 //bbuffer := make([]byte, 100) //for { // n, err = unxmlreader.Read(bbuffer) // if err != nil { // if err == io.EOF || n == 0 { // break // } // fmt.Printf("Error while reading file at line nr. %d: %v\n", lineno, err) // break // } // lineno++ // //fmt.Printf("Buffer nbr. %d: %s\n", lineno, bbuffer[:n]) // fmt.Printf("%s", bbuffer[:n]) //} //fmt.Printf("%s", bbuffer[:n]) //f.Close() //f, err = os.Open(os.Args[1]) //if err != nil { // fmt.Fprintf(os.Stderr, "Error when opening file for the second time: %s\n", err) //} //unxmlreader = unxml.NewReaderKeepElements(f, make([]string, 0)) unxmlreader = bufio.NewReaderSize(unxml.NewReaderKeepElements(f, []string{"div", "p"}), 4096) lineno := 0 //bbuffer := make([]byte, 4096) //bbuffer := make([]byte, 100) for { s, err := unxmlreader.ReadString(byte('\n')) if err != nil { if err == io.EOF { fmt.Printf("%s", s) break } fmt.Printf("Error while reading file at line nr. %d: %v\n", lineno, err) break } lineno++ //fmt.Printf("Buffer nbr. %d: %s\n", lineno, bbuffer[:n]) fmt.Printf("%s", s) } }