本文整理匯總了Golang中code/google/com/p/go-html-transform/h5.Tree.Top方法的典型用法代碼示例。如果您正苦於以下問題:Golang Tree.Top方法的具體用法?Golang Tree.Top怎麽用?Golang Tree.Top使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類code/google/com/p/go-html-transform/h5.Tree
的用法示例。
在下文中一共展示了Tree.Top方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: getTitleNode
func getTitleNode(document *h5.Tree) (titleNode string, err error) {
var chain *selector.Chain
if chain, err = selector.Selector("title"); err != nil {
return
}
if matches := chain.Find(document.Top()); len(matches) > 0 {
match := matches[0:1]
titleNode = h5.RenderNodesToString(match)
}
return
}
示例2: ExtractReader
// ExtractReader - Acts like Extract but first parses html body from reader.
func (m SelectorsMap) ExtractReader(buffer io.Reader) (res interface{}, err error) {
// If no buffer return error
if buffer == nil {
err = ErrNoBody
return
}
// Parse body
var node *h5.Tree
node, err = h5.New(buffer)
if err != nil {
return
}
// Extract from top node
res = m.Extract(node.Top())
return
}
示例3: rewriteBody
func rewriteBody(containerSelector string, dest io.Writer, body string) (err error) {
if containerSelector == "" {
dest.Write([]byte(body))
return
}
var chain *selector.Chain
var document *h5.Tree
if document, err = h5.NewFromString(body); err != nil {
err = fmt.Errorf("invalid html document: %v", err)
return
}
var titleNode string
if titleNode, err = getTitleNode(document); err != nil {
return
}
if chain, err = selector.Selector(containerSelector); err != nil {
err = fmt.Errorf("invalid css: %v", containerSelector)
return
}
if matches := chain.Find(document.Top()); len(matches) > 0 {
match := matches[0:1] // Take only the first match
newBody := h5.RenderNodesToString(h5.Children(match[0]))
fmt.Printf("data: %v", h5.Data(match[0]))
dest.Write([]byte(titleNode))
dest.Write([]byte(newBody))
return
}
err = fmt.Errorf("container not found")
return
}