Gee afgelaaide XML as stroom aan .NET XmlReader
Gee die volmag-response-stroom aan die XML-ontleder eerder as om dit die oorspronklike URL weer te laat haal.
Die HTTP-kliënt laai die XML deur die regte volmag af. Die volgende reël skep 'n XML-leser vanaf die oorspronklike URL. Daardie reël begin 'n nuwe ophaal in plaas daarvan om die afgelaaide data te ontleed.
Vir 'n kliënt wat reeds met die beoogde roete opgestel is, gee sy response-stroom aan die ontleder:
using var response = await client.GetAsync(documentUri);
response.EnsureSuccessStatusCode();
using var stream = await response.Content.ReadAsStreamAsync();
var settings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Prohibit,
XmlResolver = null
};
using var reader = XmlReader.Create(stream, settings, documentUri.AbsoluteUri);
var document = XDocument.Load(reader);
Die relevante naamruimtes is System.Xml en System.Xml.Linq. Die voorbeeld deaktiveer DTD-verwerking en eksterne resolusie doelbewus; dit is nie 'n manier om willekeurige eksterne entiteite deur dieselfde kliënt te haal nie.
Die basis-URI bewaar die dokument se liggingsmetadata. As 'n goedgekeurde ontledings- of valideringswerkvloei wel eksterne skemas of ander afhanklikhede ophaal, het daardie ophaalaksies hulle eie eksplisiete resolver en roeteringsontwerp nodig.
Moenie 'n tweede netwerkfout diagnoseer deur die wagwoord op die eerste, suksesvolle kliënt te verander nie. Stel vas of die ontleder 'n stroom of 'n URL ontvang het, en volg dan enige bykomende bronne afsonderlik.