XFA Packet DOM
TXFAPacketDOM učitava bilo potpuni XDP tok bilo naredbeni niz paketa PDF-a /XFA, izlaže korijene paketa i omeđene upite lokalnih imena putanja te podržava uređivanja elemenata, teksta, CDATA, atributa, dodavanja paketa, uklanjanja paketa i preimenovanja paketa
Nedirnuti paketi bez gubitaka
Svaki učitani tok ili paket zadržava svoje izvorne bajtove i strukturni otisak; serijalizacija vraća te točne bajtove kada je DOM nedirnut, a uređivanje niza paketa ponovno zapisuje samo promijenjeni paket uz očuvanje bajtova svakog nepromijenjenog brata
Kanonski modificirani izlaz
Modificirana stabla koriste UTF-8 XML, deterministički redoslijed imenskih prostora i atributa, kvalificirana imena elemenata, izbjegavanje XML entiteta, sigurno CDATA razdvajanje za ugrađeni ]]>, samo-zatvarajuće prazne elemente i redoslijed paketa iz izvornog niza
Kanonski izlaz predstavlja DOM sadržaj, a ne leksičke pojedinosti, pa se komentari, upute za obradu, uvlačenje izvora, izvorna XML deklaracija i izvorni DOCTYPE ne reproduciraju nakon uređivanja; vrijednosti unutarnjih entiteta proširuju se kao tekst, a vanjski entiteti ostaju nerazriješeni
Upiti i uređivanja
var
DOM: TXFAPacketDOM;
Nodes: TArray<TXFANode>;
XDP: TBytes;
begin
DOM := TXFAPacketDOM.Create;
try
DOM.LoadXDPStream(SourceBytes);
Nodes := DOM.SelectNodes('datasets', '//customer/name');
if Length(Nodes) > 0 then
Nodes[0].SetText('Updated & verified', True);
XDP := DOM.SerializeXDPStream;
PDF.SetXFADocument(XDP);
finally
DOM.Free;
end;
end;
Vodeći // izvodi omeđeni upit potomaka, dok segmenti odvojeni kosom crtom odabiru izravnu djecu; * podudara bilo koji element, a sufiks [N] temeljen na nuli odabire jedno podudaranje
Objava niza paketa
SerializePacketArray vraća naredbene zapise TXFAPacketData-a; proslijedite svaki zapis THotPDF.AddXFAPacket-u ili upotrijebite SerializeXDPStream s THotPDF.SetXFADocument-om za oblik s jednim tokom
Proračuni
TXFADOMLimits.Default omeđuje agregirane ulazne i izlazne bajtove, broj paketa, broj čvorova, dubinu, atribute po čvoru, agregirane bajtove atributa i teksta te MaxQueryResults; raščlamba, provjera mutacije, upit, otiskivanje i serijalizacija ne uspijevaju s EHPDFXFAError-om kada se prekorači granica
Pogledajte TXFAPacketDOM, TXFANode i TXFADOMLimits