@@ -28,24 +28,25 @@ import (
2828)
2929
3030type xmlParser struct {
31- buf []byte
32- dec * xml.Decoder
33- tok xml.Token
34- attrs []xml.Attr
35- attrIndex int
36- attrValue bool
37- attrFirst bool
31+ dec * xml.Decoder
32+
33+ // options
3834 attrPrefix string
3935 elemPrefix string
4036 textPrefix string
37+
38+ tok xml.Token
39+ attrs []xml.Attr
40+ attrIndex int
41+ attrValue bool
42+ attrFirst bool
4143}
4244
4345// XMLParser is an xml parser.
4446type XMLParser interface {
4547 parser.Interface
4648 //Init intialises the parser with a byte buffer containing xml.
4749 Init ([]byte ) error
48- Reset () error
4950}
5051
5152// NewXMLParser returns a new xml parser.
@@ -86,16 +87,11 @@ var procInstPattern = regexp.MustCompile(`<\?.*\?>`)
8687func (p * xmlParser ) Init (buf []byte ) error {
8788 buf = procInstPattern .ReplaceAll (buf , []byte {})
8889 buf = bytes .TrimSpace (buf )
89- p .buf = buf
9090 p .dec = xml .NewDecoder (bytes .NewBuffer (buf ))
9191 p .dec .Strict = false
9292 return nil
9393}
9494
95- func (s * xmlParser ) Reset () error {
96- return s .Init (s .buf )
97- }
98-
9995func hasContent (c xml.CharData ) bool {
10096 return len (string (c )) > 0
10197}
@@ -120,9 +116,7 @@ func (p *xmlParser) Next() (err error) {
120116 if p .tok != nil {
121117 for {
122118 if _ , ok := p .tok .(xml.StartElement ); ok {
123- //fmt.Printf("Skipping %s\n", s.Name)
124119 if err := p .dec .Skip (); err != nil {
125- //fmt.Printf("Skip err = %v\n", err)
126120 return err
127121 }
128122 break
@@ -134,7 +128,6 @@ func (p *xmlParser) Next() (err error) {
134128 }
135129 } else if _ , ok := p .tok .(xml.Comment ); ok {
136130 p .tok , err = p .dec .Token ()
137- //fmt.Printf("Comment Next Token %#v, err = %v\n", p.tok, err)
138131 if err != nil {
139132 return err
140133 }
@@ -144,7 +137,6 @@ func (p *xmlParser) Next() (err error) {
144137 }
145138 }
146139 p .tok , err = p .dec .Token ()
147- //fmt.Printf("Next Token %#v, err %v\n", p.tok, err)
148140 for err == nil {
149141 if _ , ok := p .tok .(xml.StartElement ); ok {
150142 break
@@ -156,7 +148,6 @@ func (p *xmlParser) Next() (err error) {
156148 return io .EOF
157149 }
158150 p .tok , err = p .dec .Token ()
159- //fmt.Printf("Next Next Token %#v, err = %v\n", p.tok, err)
160151 }
161152 return err
162153}
@@ -169,7 +160,6 @@ func (p *xmlParser) IsLeaf() bool {
169160 return false
170161 }
171162 _ , ok := p .tok .(xml.CharData )
172- //fmt.Printf("IsLeaf %#v\n", p.tok)
173163 return ok
174164}
175165
0 commit comments