Klient HTTP stiahne XML cez správnu proxy. Nasledujúci riadok vytvorí čítačku XML z pôvodnej URL. Tento riadok spustí ďalšie načítanie namiesto parsovania stiahnutých údajov.

Pre klienta už nakonfigurovaného so zamýšľanou trasou odovzdajte jeho stream odpovede parseru:

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

Príslušné menné priestory sú System.Xml a System.Xml.Linq. Príklad zámerne vypína spracovanie DTD a externé rozlíšenie; nie je to spôsob, ako cez toho istého klienta načítavať ľubovoľné externé entity.

Základná URI zachováva metadáta o umiestnení dokumentu. Ak schválený pracovný postup parsovania alebo validácie napriek tomu načítava externé schémy alebo iné závislosti, tieto načítania potrebujú vlastný explicitný resolver a návrh smerovania.

Nediagnostikujte druhú sieťovú chybu zmenou hesla pri prvom, úspešnom klientovi. Zistite, či parser dostal stream alebo URL, a potom sledujte prípadné ďalšie zdroje oddelene.

Súvisiace články