Ներբեռնված XML-ը .NET XmlReader-ին որպես հոսք փոխանցելը
Փոխանցեք պրոքսիով անցած պատասխանի հոսքը XML վերլուծիչին՝ փոխարենը չպահանջելով նորից բերել սկզբնական URL-ը։
HTTP հաճախորդը XML-ը ներբեռնում է ճիշտ պրոքսիով։ Հաջորդ տողը սկզբնական URL-ից ստեղծում է XML ընթերցիչ։ Այդ տողը սկսում է նոր ձեռքբերում՝ ներբեռնված տվյալները վերլուծելու փոխարեն։
Նպատակային երթուղով արդեն կարգավորված հաճախորդի համար փոխանցեք նրա պատասխանի հոսքը վերլուծիչին՝
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);
Համապատասխան անվանատարածքներն են System.Xml և System.Xml.Linq։ Օրինակը դիտավորյալ անջատում է DTD-ի մշակումը և արտաքին լուծումը․ դա նույն հաճախորդով կամայական արտաքին սուբյեկտներ բերելու միջոց չէ։
Հիմնական URI-ն պահպանում է փաստաթղթի տեղադրության մետատվյալները։ Եթե հաստատված վերլուծության կամ վավերացման աշխատահոսքը իսկապես բերում է արտաքին սխեմաներ կամ այլ կախվածություններ, այդ ձեռքբերումները պահանջում են իրենց բացահայտ լուծիչը և երթուղային ձևավորումը։
Մի՛ ախտորոշեք երկրորդ ցանցային ձախողումը՝ փոխելով գաղտնաբառը առաջին, հաջող հաճախորդի վրա։ Պարզեք՝ վերլուծիչը հոսք է ստացել, թե URL, ապա ցանկացած լրացուցիչ ռեսուրս հետևեք առանձին։