La HTTP-kliento elŝutas la XML-on tra la ĝusta prokuro. La sekva linio kreas XML-legilon el la origina URL. Tiu linio komencas plian akiron anstataŭ analizi la elŝutitajn datumojn.

Por kliento jam agordita kun la celata vojo, transdonu ĝian respondfluon al la analizilo:

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);

La koncernaj nomspacoj estas System.Xml kaj System.Xml.Linq. La ekzemplo intence malŝaltas DTD-traktadon kaj eksteran solvadon; ĝi ne estas maniero akiri arbitrajn eksterajn entojn tra la sama kliento.

La baza URI konservas la lokan metadatenaron de la dokumento. Se aprobita analiza aŭ validiga laborfluo ja akiras eksterajn ŝablonojn aŭ aliajn dependaĵojn, tiuj akirendoj bezonas propran eksplicitan solvilon kaj vojigan dezajnon.

Ne diagnozu duan retan malsukceson ŝanĝante la pasvorton de la unua, sukcesa kliento. Konstatu, ĉu la analizilo ricevis fluon aŭ URL-on, poste sekvu eventualajn pliajn rimedojn aparte.

Rilataj artikoloj