func html_doc_Text_Text(ctx *EngineContext, scope *Scope, ins protoface.Instruction, args []interface{}) (returnValue interface{}) { ctx.HtmlParsed = true inputEncoding := args[0].(string) inputEncodingBytes := []byte(inputEncoding) outputEncoding := args[1].(string) outputEncodingBytes := []byte(outputEncoding) input := scope.Value.(string) doc, err := html.Parse([]byte(input), inputEncodingBytes, nil, html.DefaultParseOption, outputEncodingBytes) if err != nil { LogEngineError(ctx, "html_doc err: "+err.Error()) returnValue = "false" return } if doc == nil { LogEngineError(ctx, "html_doc err: nil doc") returnValue = "false" return } ctx.AddMemoryObject(doc) ctx.CurrentDoc = doc ns := &Scope{Value: doc} for i := 0; i < ins.INumChildren(); i++ { child := ins.IGetNthChild(i) ctx.RunInstruction(ns, child) } if err := doc.SetMetaEncoding(outputEncoding); err != nil { //ctx.Log.Warn("executing html:" + err.Error()) } scope.Value = doc.String() ctx.CurrentDoc = nil returnValue = scope.Value //doc.Free() return }
func ParseHtml(content []byte) (doc *html.HtmlDocument, err error) { return html.Parse(content, html.DefaultEncodingBytes, nil, html.DefaultParseOption, html.DefaultEncodingBytes) }