XmlDocument
sealed class XmlDocument : Document, IXmlDocument, IDocument, INode, IEventTarget, IMarkupFormattable, IParentNode, IGlobalEventHandlers, IDocumentStyle, INonElementParentNode, IDisposable
Represents a document node that contains only XML nodes.
using AngleSharp.Dom.Events;
using AngleSharp.Extensions;
using AngleSharp.Network;
using AngleSharp.Parser.Xml;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace AngleSharp.Dom.Xml
{
internal sealed class XmlDocument : Document, IXmlDocument, IDocument, INode, IEventTarget, IMarkupFormattable, IParentNode, IGlobalEventHandlers, IDocumentStyle, INonElementParentNode, IDisposable
{
public override IElement DocumentElement => this.FindChild<IElement>();
internal XmlDocument(IBrowsingContext context, TextSource source)
: base(context ?? BrowsingContext.New(null), source)
{
base.ContentType = MimeTypeNames.Xml;
}
internal XmlDocument(IBrowsingContext context = null)
: this(context, new TextSource(string.Empty))
{
}
public override INode Clone(bool deep = true)
{
XmlDocument xmlDocument = new XmlDocument(base.Context, new TextSource(base.Source.Text));
CloneDocument(xmlDocument, deep);
return xmlDocument;
}
internal static async Task<IDocument> LoadAsync(IBrowsingContext context, CreateDocumentOptions options, CancellationToken cancelToken)
{
XmlDocument document = new XmlDocument(context, options.Source);
XmlDomBuilder xmlDomBuilder = new XmlDomBuilder(document, null);
document.Setup(options);
context.NavigateTo(document);
context.Fire(new HtmlParseEvent(document, false));
await xmlDomBuilder.ParseAsync(default(XmlParserOptions), cancelToken).ConfigureAwait(false);
context.Fire(new HtmlParseEvent(document, true));
return document;
}
protected override void SetTitle(string value)
{
}
}
}