public GumboWrapper(string html, GumboWrapperOptions? options = null) { _Options = CreateOptions(options); _Html = NativeUtf8Helper.NativeUtf8FromString(html); _OutputPtr = NativeMethods.gumbo_parse(_Html); var output = Marshal.PtrToStructure<GumboOutput>(_OutputPtr); _GumboDocumentNode = output.GetDocument(); Errors = output.GetErrors(); var lazyFactory = new DisposalAwareLazyFactory(() => _IsDisposed, typeof(GumboWrapper).Name); _WrapperFactory = new WrapperFactory(lazyFactory); Document = (DocumentWrapper)_WrapperFactory.CreateNodeWrapper(_GumboDocumentNode); }
public GumboWrapper(string html, GumboWrapperOptions?options = null) { _Options = CreateOptions(options); _Html = NativeUtf8Helper.NativeUtf8FromString(html); _OutputPtr = NativeMethods.gumbo_parse(_Html); var output = Marshal.PtrToStructure <GumboOutput>(_OutputPtr); _GumboDocumentNode = output.GetDocument(); Errors = output.GetErrors(); var lazyFactory = new DisposalAwareLazyFactory(() => _IsDisposed, typeof(GumboWrapper).Name); _WrapperFactory = new WrapperFactory(lazyFactory); Document = (DocumentWrapper)_WrapperFactory.CreateNodeWrapper(_GumboDocumentNode); }
public GumboWrapper(string html, bool stopOnFirstError = false, int maxErrors = -1, int tabStopSize = 8) { _Options = new GumboOptions(); NativeMethods.gumbo_set_options_defaults(ref _Options); _Options.max_errors = maxErrors; _Options.stop_on_first_error = stopOnFirstError; _Html = NativeUtf8Helper.NativeUtf8FromString(html); _OutputPtr = NativeMethods.gumbo_parse(_Html); var output = (GumboOutput)Marshal.PtrToStructure(_OutputPtr, typeof(GumboOutput)); _GumboDocumentNode = output.GetDocument(); Errors = output.GetErrors(); var lazyFactory = new DisposalAwareLazyFactory(() => this._Disposed, typeof(GumboWrapper).Name); Document = new DocumentWrapper(_GumboDocumentNode, lazyFactory, AddElementWithId); }