func (p *Parser) ParseString(s string) (*Document, error) { ctx := C.xmlCreateMemoryParserCtxt(C.CString(s), C.int(len(s))) if ctx == nil { return nil, errors.New("error createing parser") } defer C.xmlFreeParserCtxt(ctx) C.xmlCtxtUseOptions(ctx, C.int(p.Options)) C.xmlParseDocument(ctx) if ctx.wellFormed == C.int(0) { return nil, errors.New("malformed XML") } doc := ctx.myDoc if doc == nil { return nil, errors.New("parse failed") } return wrapDocument(doc), nil }
// xmlCtxtUseOptions func (p *Parser) UseOptions(options ParserOption) int { return int(C.xmlCtxtUseOptions(p.Ptr, C.int(options))) }