diff options
Diffstat (limited to 'definisi_kata.go')
| -rw-r--r-- | definisi_kata.go | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/definisi_kata.go b/definisi_kata.go index ac8ba5d..95f1292 100644 --- a/definisi_kata.go +++ b/definisi_kata.go @@ -7,8 +7,8 @@ package kbbi import ( "strings" + "github.com/shuLhan/share/lib/net/html" libstrings "github.com/shuLhan/share/lib/strings" - "golang.org/x/net/html" ) // @@ -22,29 +22,31 @@ type DefinisiKata struct { } func parseDefinisiKata(li *html.Node) (defKata *DefinisiKata) { - elFont := getFirstChild(li) - if elFont.Data != tagNameFont { + elFont := li.GetFirstChild() + if elFont == nil || elFont.Data != tagNameFont { return nil } - elItalic := getFirstChild(elFont) - if elItalic.Data != tagNameItalic { + elItalic := elFont.GetFirstChild() + if elItalic == nil || elItalic.Data != tagNameItalic { return nil } defKata = &DefinisiKata{} - elSpan := getFirstChild(elItalic) + elSpan := elItalic.GetFirstChild() for elSpan != nil && elSpan.Data == tagNameSpan { - for _, attr := range elSpan.Attr { - if attr.Key != attrNameTitle { - continue - } - defKata.Kelas = append(defKata.Kelas, attr.Val) + kelas := elSpan.GetAttrValue(attrNameTitle) + if len(kelas) > 0 { + defKata.Kelas = append(defKata.Kelas, kelas) } - elSpan = getNextSibling(elSpan) + elSpan = elSpan.GetNextSibling() + } + + el := elFont.GetNextSibling() + if el == nil { + return defKata } - el := getNextSibling(elFont) defKata.Isi = strings.TrimSpace(libstrings.SingleSpace(el.Data)) if defKata.Isi[len(defKata.Isi)-1] != ':' { @@ -54,23 +56,23 @@ func parseDefinisiKata(li *html.Node) (defKata *DefinisiKata) { defKata.Isi = defKata.Isi[:len(defKata.Isi)-1] // Parse the example of kata in the next sibling. - el = getNextSibling(el) + el = el.GetNextSibling() for el != nil { if el.Data != tagNameFont { break } - elItalic = getFirstChild(el) + elItalic = el.GetFirstChild() if elItalic.Data != tagNameItalic { break } - elText := getFirstChild(elItalic) + elText := elItalic.GetFirstChild() if elText != nil { defKata.Contoh = append(defKata.Contoh, elText.Data) } - el = getNextSibling(el) + el = el.GetNextSibling() } return defKata |
