aboutsummaryrefslogtreecommitdiff
path: root/definisi_kata.go
diff options
context:
space:
mode:
Diffstat (limited to 'definisi_kata.go')
-rw-r--r--definisi_kata.go36
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