MCPcopy
hub / github.com/mmcdole/gofeed / parseEntry

Method parseEntry

atom/parser.go:199–350  ·  view source on GitHub ↗
(p *xpp.XMLPullParser)

Source from the content-addressed store, hash-verified

197}
198
199func (ap *Parser) parseEntry(p *xpp.XMLPullParser) (*Entry, error) {
200 if err := p.Expect(xpp.StartTag, "entry"); err != nil {
201 return nil, err
202 }
203 entry := &Entry{}
204
205 contributors := []*Person{}
206 authors := []*Person{}
207 categories := []*Category{}
208 links := []*Link{}
209 extensions := ext.Extensions{}
210
211 for {
212 tok, err := shared.NextTag(p)
213 if err != nil {
214 return nil, err
215 }
216
217 if tok == xpp.EndTag {
218 break
219 }
220
221 if tok == xpp.StartTag {
222
223 name := strings.ToLower(p.Name)
224
225 if shared.IsExtension(p) {
226 e, err := shared.ParseExtension(extensions, p)
227 if err != nil {
228 return nil, err
229 }
230 extensions = e
231 } else if name == "title" {
232 result, err := ap.parseAtomText(p)
233 if err != nil {
234 return nil, err
235 }
236 entry.Title = result
237 } else if name == "id" {
238 result, err := ap.parseAtomText(p)
239 if err != nil {
240 return nil, err
241 }
242 entry.ID = result
243 } else if name == "rights" ||
244 name == "copyright" {
245 result, err := ap.parseAtomText(p)
246 if err != nil {
247 return nil, err
248 }
249 entry.Rights = result
250 } else if name == "summary" {
251 result, err := ap.parseAtomText(p)
252 if err != nil {
253 return nil, err
254 }
255 entry.Summary = result
256 } else if name == "source" {

Callers 1

parseRootMethod · 0.95

Calls 10

parseAtomTextMethod · 0.95
parseSourceMethod · 0.95
parsePersonMethod · 0.95
parseCategoryMethod · 0.95
parseLinkMethod · 0.95
parseContentMethod · 0.95
NextTagFunction · 0.92
IsExtensionFunction · 0.92
ParseExtensionFunction · 0.92
ParseDateFunction · 0.92

Tested by

no test coverage detected